(PHP 4 >= 4.0.4, PHP 5)
openssl_open — Öffnet versiegelte Daten
Die Funktion openssl_open() öffnet (entschlüsselt) sealed_data unter Verwendung des privaten Schlüssels, der mit der Schlüsselkennung priv_key_id und dem Umschlagschlüssel env_key verknüpft ist und füllt open_data mit den entschlüsselten Daten. Der Umschlagschlüssel wird bei der Versiegelung erzeugt und kann ausschlieslich für einen bestimmten privaten Schlüssel verwendet werden. Mehr Informationen erhalten Sie bei der Dokumentation zu openssl_seal().
Bei erfolgreicher Ausführung werden die gelesenen Daten in diesem Parameter zurückgegeben.
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 openssl_open() Beispiel
<?php
// Annahme: $sealed und $env_key enthalten versiegelte Daten und unseren
// Umschlagschlüssel; beide haben wir von dem Versiegelnden erhalten
// privaten Schlüssel aus einer Datei holen und vorbereiten
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
// entschlüsseln der Daten und speichern in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
echo "Das sind die geöffneten Daten: ", $open;
} else {
echo "Öffnen der Daten nicht möglich!";
}
// löschen des privaten Schlüssels aus dem Speicher
openssl_free_key($pkeyid);
?>
Example code, assume mycert.pem is a certificate containing both private and public key.
$cert = file_get_contents("mycert.pem");
$public = openssl_get_publickey($cert);
$private = openssl_get_privatekey($cert);
$data = "I'm a lumberjack and I'm okay.";
echo "Data before: {$data}\n";
openssl_seal($data, $cipher, $e, array($public));
echo "Ciphertext: {$cipher}\n";
openssl_open($cipher, $open, $e[0], $private);
echo "Decrypted: {$open}\n";