Function.openssl-pkcs7-encrypt

Aus PHP-Wiki

Wechseln zu: Navigation, Suche
Ratenkredit Vergleichen Online - Kostenloser Kreditkartenvergleich und Private KrankenversicherungReiseversicherung . Zusatzkrankenversicherung Zahnersatz

openssl_pkcs7_encrypt — Verschlüsseln einer S/MIME Nachricht

Inhaltsverzeichnis

Beschreibung

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


openssl_pkcs7_encrypt() verschlüsselt den Inhalt der Datei namens infile und verschlüsselt ihn unter Verwendung eines RC2 40-Bit Schlüssels. Der Inhalt kann anschliessend nur von den im Parameter recipcerts angegebenen Empfängern gelesen werden.

Parameter-Liste

infile
outfile

switch charset to utf-8 sync to en recipcerts'

  • Entweder ein einzelnes X.509-Zertifikat oder ein Array solcher Zertifikate.
headers
  • headers ist ein Array von Headern die den Daten nach der Verschlüsselung vorangestellt werden. Bei headers kann es sich entweder um ein assoziatives Array handeln, wobei der Key dem Header-Namen entspricht, oder um ein indiziertes Array, bei dem jedes Element einen einzelnen Header enthält.
flags
  • Mittels flags können Optionen angegeben werden die den Verschlüsselungsprozeß beeinflussen. Siehe PKCS7 Konstanten.
cipherid
  • Mittels cipherid kann seit PHP5 der Schlüssel bestimmt werden.

Rückgabewerte

Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.

ChangeLog

Version Beschreibung 5.0.0 Der Parameter cipherid wurde hinzugefügt.

Beispiele

Beispiel #1 openssl_pkcs7_encrypt() Beispiel

<?php
// die zu verschlüsselnde Nachricht, die Sie Ihrem als "Nighthawk" bekanntem
// Geheimagenten im Einsatz schicken wollen.
// Sein Zertifikat liegt in der Datei nighthawk.pem vor
$data = <<<EOD
Nighthawk,
 
Streng geheim!
 
Der Feind rückt näher. Treffen Sie mich im Cafè um 0830.
 
HQ
EOD;
 
// Schlüssel laden
$key = file_get_contents("nighthawk.pem");
 
// Nachricht in Datei speichern
$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 ", // indexed syntax
          "Subject" => "Streng geheim!"))) {
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>
Persönliche Werkzeuge