PHP Doku:: Öffnet versiegelte Daten - function.openssl-open.html

Verlauf / Chronik / History: (50) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzKryptografische ErweiterungenOpenSSLOpenSSL Funktionenopenssl_open

Ein Service von Reinhard Neidl - Webprogrammierung.

OpenSSL Funktionen

<<openssl_get_publickey

openssl_pkcs12_export_to_file>>

openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_openÖffnet versiegelte Daten

Beschreibung

bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id )

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().

Parameter-Liste

sealed_data

open_data

Bei erfolgreicher Ausführung werden die gelesenen Daten in diesem Parameter zurückgegeben.

env_key

priv_key_id

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

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($fp8192);
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);
?>

Siehe auch


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
Gareth Owen
17.02.2009 17:20
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";



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)