(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 = "RC4"
[, string &$iv
]] ) : int
Die Funktion openssl_seal() verschlüsselt
data unter Verwendung des angegebenen method 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_keyszurü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.
dataDie zu verschlüsselnden Daten.
sealed_dataDie verschlüsselten Daten.
env_keysArray verschlüsselter Schlüssel.
pub_key_idsArray von öffentlichen Schlüssel-Ressource-Kennungen.
methodDie Chiffriermethode.
ivDer Initialisierungsvektor.
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.
| Version | Beschreibung |
|---|---|
| 7.0.0 |
The iv-Parameter wurde hinzugefügt.
|
| 5.3.0 |
Der method-Parameter wurde hinzugefügt.
|
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);
?>