Werbung
openssl_pkcs7_encrypt
(PHP 4 >= 4.0.6, PHP 5)
openssl_pkcs7_encrypt — Verschlüsseln einer S/MIME Nachricht
Beschreibung
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.
Parameter-Liste
- 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.
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Changelog
| Version | Beschreibung |
|---|---|
| 5.0.0 | Der Parameter cipherid wurde hinzugefügt. |
Beispiele
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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");
}