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.
Die Funktion openssl_pkcs7_encrypt() verschlüsselt die
Inhalte der Datei, angegeben durch den Pararmeter
infile. Die Verschlüsselung benutzt
eine RC2 40 Bit Chiffre, so dass diese Inhalte nur von den
beabsichtigten Empfängern gelesen werden können, die mit dem Parameter
recipcerts angegeben wurden. Der Parameter
recipcerts kann ein einzelnes X.509 Zertifikat
oder ein Array von X.509 Zertifikaten enthalten.
Der Parameter headers ist ein Array aus Headern
die den Daten vorangestellt wird, nachdem diese verschlüsselt wurden.
Das Array headers kann entweder ein assoziatives
Array sein, mit Indizes aus den Headernamen, oder ein indiziertes Array,
wobei jedes Element eine einzelne Header-Zeile enthält.
Um den Verschlüsselungsprozess zu beeinflussen, können Sie den Paramter
flags benutzen - siehe
PKCS7 Konstanten.
Beispiel 1. openssl_pkcs7_encrypt()
Beispiel
// Die Nachricht die Sie verschlüsselt an Ihren Geheimagenten,
// bekannt als Nachtfalke, schicken wollen.
// Sein Zertifikat liegt Ihnen in der Datei nighthawk.pem vor.
$data = <<<EOD
Nachtfalke,
Streng geheim, nur für Ihre Augen bestimmt!
Der Feind kommt näher! Treffen Sie mich im Cafe um 8.30 abends.
Sie erhalten Ihren gefälschten Ausweis!
HQ
EOD;
// Schlüssel laden
$key = implode("", file("nighthawk.pem"));
// speichern der Nachricht in einer Datei
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// verschlüsseln
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
array("To" => "nighthawk@example.com", // keyed syntax
"From: HQ <hq@example.com>", // indexed syntax
"Subject" => "Eyes only")))
{
// Nachricht verschlüsselt - ab damit!
exec(ini_get("sendmail_path") . " < enc.txt");
}