Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.
openssl_pkcs7_encrypt() принимает содержимое файла infile и шифрует его с использованием 40-битного шифра RC2
таким образом, что оно может быть прочитано только реципиентами recipcerts, которые могут быть отдельным X.509 сертификатом или массивом из X.509
сертификатов. headers это массив шапок, присоединяемый перед данными после их шифровки.
flags можно использовать для специфицирования опций, влияющих на процесс кодирования -
см. PKCS7-константы. headers может быть ассоциативным массивом с ключами по именам шапок либо
индексированным массивом, где каждый элемент содержит строчку одной шапки.
Пример 1. openssl_pkcs7_encrypt()
// сообщение, которое вы хотите зашифровать и отправить вашему секретному агенту
// nighthawk. Вы имеете его сертификат в файле nighthawk.pem
$data = <<<EOD
Nighthawk,
Top secret, for your eyes only!
The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!
HQ
EOD;
// загрузить ключ
$key = implode("", file("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" => "Eyes only")))
{
// сообщение зашифровано - отправить его!
exec(ini_get("sendmail_path") . " < enc.txt");
}