Forum und email

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt — Verschlüsseln einer S/MIME Nachricht

Beschreibung

bool openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags [, int $cipherid ]] )

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. Um den Verschlüsselungsprozess zu beeinflussen, können Sie den Paramter flags benutzen - siehe PKCS7 Konstanten. 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. Mit cipherid kann Cipher seit PHP 5 bestimmt werden.

Example#1 openssl_pkcs7_encrypt() Beispiel

<?php
// 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 file_get_contents("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" => "[email protected]"// keyed syntax
          
"From: HQ <[email protected]>"// indexed syntax
          
"Subject" => "Eyes only"))) {

    
// Nachricht verschlüsselt - ab damit!
    
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>