(PHP 4 >= 4.0.6, PHP 5, PHP 7)
openssl_pkcs7_encrypt — Verschlüsseln einer S/MIME Nachricht
$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 anschließend nur von den im Parameter
recipcerts
angegebenen Empfängern gelesen werden.
infile
outfile
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.
Gibt bei Erfolg TRUE
zurück. Im Fehlerfall wird FALSE
zurückgegeben.
Version | Beschreibung |
---|---|
5.0.0 |
Der Parameter cipherid wurde hinzugefügt.
|
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 <hq@example.com>", // indexed syntax
"Subject" => "Streng geheim!"))) {
// message encrypted - send it!
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>