(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
openssl_open — Öffnet versiegelte Daten
$data,&$output,$encrypted_key,$private_key,$cipher_algo,$iv = null
openssl_open() öffnet (entschlüsselt)
data mit einem Umschlagschlüssel, der mit
private_key aus encrypted_key
entschlüsselt wird. Die Entschlüsselung erfolgt mit
cipher_algo und iv. Der IV
wird nur benötigt, wenn die Verschlüsselungsmethode dies erfordert. Die
Funktion füllt output mit den entschlüsselten Daten.
Der Umschlagschlüssel wird normalerweise erzeugt, wenn die Daten mit einem
öffentlichen Schlüssel versiegelt werden, der mit dem privaten Schlüssel
verknüpft ist. Siehe openssl_seal() für weitere
Informationen.
dataDie versiegelten Daten.
outputBei erfolgreicher Ausführung werden die geöffneten Daten in diesem Parameter zurückgegeben.
encrypted_key
Der verschlüsselte symmetrische Schlüssel, der mit
private_key entschlüsselt werden kann.
private_key
Der private Schlüssel, der für die Entschlüsselung von
encrypted_key verwendet wird.
cipher_algo
Die Verschlüsselungsmethode, die für die Entschlüsselung von
data verwendet wird.
Der Standardwert für PHP-Versionen vor 8.0 ist
'RC4', was als unsicher gilt. Es wird dringend
empfohlen, explizit eine sichere Verschlüsselungsmethode anzugeben.
iv
Der Initialisierungsvektor, der für die Entschlüsselung von
data verwendet wird. Er wird benötigt, wenn die
Verschlüsselungsmethode einen IV erfordert. Dies kann durch den Aufruf
von openssl_cipher_iv_length() mit
cipher_algo ermittelt werden.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
private_key akzeptiert nun eine
OpenSSLAsymmetricKey- oder
OpenSSLCertificate-Instanz; vorher wurde eine
Ressource vom Typ OpenSSL key oder
OpenSSL X.509 CSR akzeptiert.
|
| 8.0.0 |
Der Parameter cipher_algo ist nicht mehr
optional.
|
Beispiel #1 openssl_open()-Beispiel
<?php
// Holen des privaten Schlüssels aus der Datei private_key.pem
$pkey = openssl_get_privatekey("file://private_key.pem");
// Entschlüsseln der Daten und speichern in $open
if (openssl_open($sealed, $open, $env_key, $pkey, 'AES256', $iv)) {
echo "Das sind die geöffneten Daten: ", $open;
} else {
echo "Öffnen der Daten nicht möglich!";
}
?>