openssl_seal

openssl_seal -- Versiegelt (verschlüsselt) Daten

Beschreibung

int openssl_seal ( string data, string sealed_data, array env_keys, array pub_key_ids)

Warnung

Diese Funktion ist EXPERIMENTELL . Das Verhalten , der Funktionsname und alles Andere was hier dokumentiert ist , kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern . Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko .

Rückgabewert : im Erolgsfall die Länge der versiegelten Daten , FALSE bei einem Fehler . War der Aufruf der Funktion erfolgreich , sind die versiegelten Daten in sealed_data enthalten und der Umschlag Schlüssel steht in env_keys zur Verfügung .

Die Funktion openssl_seal( ) versiegelt (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 , dass Sie versiegelte Daten an mehrere Empfänger versenden können ( unter der Voraussetzung , dass Sie irgendwann die öffentlichen Schlüssel der Empfänger erhalten haben . Jeder Empfänger muss sowohl die versiegelten Daten als auch den entsprechenden Umschlag Schlüssel erhalten , der mit dem öffentlichen Schlüssel des Empfängers versiegelt wurde .

Beispiel 1 . openssl_seal( ) Beispiel

 
/

 
/

 
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)

 
;





Siehe auch openssl_open( ) .