Учебник РНР
НазадВперёд

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_encrypt - шифрует S/MIME-сообщение.

Описание

bool openssl_pkcs7_encrypt (string infile, string outfile, mixed recipcerts, array headers [, long flags])

Предупреждение!

Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

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" => "[email protected]", // ключевой синтаксис
          "From: HQ <[email protected]>", // индексный синтаксис
          "Subject" => "Eyes only")))
{
    // сообщение зашифровано - отправить его!
    exec(ini_get("sendmail_path") . " < enc.txt");
}

НазадОглавлениеВперёд
openssl_pkcs7_decryptВверхopenssl_pkcs7_sign