(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_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
Die zu verschlüsselnden Daten.
sealed_data
Die verschlüsselten Daten.
env_keys
Array verschlüsselter Schlüssel.
pub_key_ids
Array von öffentlichen Schlüssel-Ressource-Kennungen.
method
Die Chiffriermethode.
iv
Der 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);
?>