PHP Handbuch
Zurück |  | Nach vorne

# openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_encrypt -- Verschlüsseln einer S/MIME Nachricht

## Beschreibung

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, long flags])

Warnung
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");
    }

Zurück | Zum Anfang | Nach vorne
openssl_pkcs7_decrypt | Nach oben | openssl_pkcs7_sign