openssl_pkcs7_encrypt
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
openssl_pkcs7_encrypt — Шифрует сообщение S/MIME
Описание
$infile
, string $outfile
, mixed $recipcerts
, array $headers
, int $flags
= 0
, int $cipherid
= OPENSSL_CIPHER_RC2_40
) : bool
openssl_pkcs7_encrypt() читает сообщение из файла
infile
, шифрует его с помощью 40-битного RC2
шифра таким образом, что расшифровать его могут только получатели,
указанными в recipcerts
.
Список параметров
-
infile
-
-
outfile
-
-
recipcerts
-
Массив, либо единичный сертификат X.509.
-
headers
-
headers
задается массивом заголовков, которые будут добавлены в начало сообщения перед шифрованием.headers
может быть как ассоциативным массивом, где в качестве ключей используются имена заголовков, либо индексированным массивом, содержащим полные строки заголовков. -
flags
-
flags
используется для настройки процесса шифрования. См. Константы PKCS7. -
cipherid
-
Одна из констант шифров.
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Примеры
Пример #1 Пример использования openssl_pkcs7_encrypt()
<?php
// Сообщение, которое вы хотите зашифровать и отправить своему секретному
// агенту с позывным Козодой. У вас есть его сертификат в файле nighthawk.pem
$data = <<<EOD
Козодой,
Совершенно секретно! После прочтения сжечь!
Враги приближаются! Связной с новым поддельным паспортом
будет ждать тебя завтра в кафе в 8.30 утра.
Пароль - "У вас ус отклеился!"
Отзыв - "Это не ус, а борода!"
EOD;
// загружаем ключ
$key = file_get_contents("nighthawk.pem");
// записываем сообщение в файл
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// шифруем
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
array("To" => "nighthawk@example.com", // ассоциативный синтаксис
"From: HQ <hq@example.com>", // индексированный синтаксис
"Subject" => "СРОЧНО!!! ВАЖНО!!!"))) {
// сообщение зашифровано - отправляем!!
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>