(PHP 4 >= 4.0.4, PHP 5, PHP 7)
openssl_seal — Versiegelt (verschlüsselt) Daten
$data
, string &$sealed_data
, array &$env_keys
, array $pub_key_ids
[, string $method
] )
Die Funktion openssl_seal() verschlüsselt
data
unter Verwendung von RC4 mit einem zufällig
erzeugten geheimen Schlüssel. Dieser Schlüssel wird mit jedem öffentlichen
Schlüssel verschlüsselt, der mit der Kennung in
pub_key_ids
verknüpft ist. Jeder verschlüsselte
Schlüssel wird in env_keys
zurückgegeben. Das
bedeutet, daß Sie verschlüsselte Daten an mehrere Empfänger versenden
können (unter der Voraussetzung, daß Sie irgendwann die öffentlichen
Schlüssel der Empfänger erhalten haben). Jeder Empfänger muss sowohl die
verschlüsselten Daten als auch den entsprechenden Umschlagschlüssel
erhalten, der mit dem öffentlichen Schlüssel des Empfängers versiegelt
wurde.
data
sealed_data
env_keys
pub_key_ids
Gibt bei Erfolg die Länge der verschlüsselten Daten zurück; in diesem Fall
sind die verschlüsselten Daten in sealed_data
enthalten und env_keys
enthält die Umschlagschlüssel.
Sollte ein Fehler aufgetreten sein gibt die Funktion FALSE
zurück.
Beispiel #1 openssl_seal() example
<?php
// Annahme: $data enthält die zu versiegelnden Daten
// holen und vorbereiten der öffentlichen Schlüssel unserer Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Wiederholung für den zweiten Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);
// versiegeln der Nachricht, nur Besitzer von $pk1 und $pk2 können mit
// Schlüsseln $sealed entschlüsseln, entsprechendes gilt für $ekeys[0]
// und $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));
// Löschen der Schlüssel aus dem Speicher
openssl_free_key($pk1);
openssl_free_key($pk2);
?>