(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
openssl_pkcs7_encrypt — Bir S/MIME iletiyi şifreler
$girdi_dosyası
,$çıktı_dosyası
,$sertifika
,$başlıklar
,$seçenekler
= 0,$algoritma
= OPENSSL_CIPHER_AES_128_CBC
girdi_dosyası
nın içeriğini alır ve yalnızca sertifika
ile belirtilen alıcılar tarafından okunabilmeleri için bir RC2 40 bit algoritma
kullanarak bunları şifreler ve şifreli iletiyi çıktı_dosyası
'na kaydeder.
girdi_dosyası
çıktı_dosyası
sertifika
Ya tek bir X.509 sertifikasını içeren bir dizge ya da X.509 sertifikalarını içeren bir dizi olmalıdır.
başlıklar
İleti şifrelendikten sonra hazırlanan başlıkları içerecek dizi.
Dizi elemanların her biri ya tek bir başlık satırı içermeli ya da başlık ismini anahtar olarak alan bir ilişkisel dizi olmalıdır.
seçenekler
Kodlama işlemini etkileyen seçenekler; PKCS7 sabitlerine bakınız.
algoritma
Şifreleme sabitlerinden biri.
Sürüm: | Açıklama |
---|---|
8.1.0 | Öntanımlı şifreleme algoritması (algoritma ) artık AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC ) olabiliyor. Evvelce, PKCS7/CMS kullanılırdı (OPENSSL_CIPHER_RC2_40 ). |
8.0.0 | sertifika artık OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL X.509 CSR özkaynağı kabul edilirdi. |
Örnek 1 - openssl_pkcs7_encrypt() örneği
<?php
// Bir iletiyi şifreleyip Atmaca kod adlı araştırma
// elemanınıza göndermek istediğinizi varsayalım.
// Sertifikası atmaca.pem dosyasında olsun.
$data = <<<EOD
Atmaca,
Çok gizli, kişiye özel!
8:30'da gizli yerimizde buluşalım.
Başkan
EOD;
// anahtarı yükleyelim
$key = file_get_contents("atmaca.pem");
// iletiyi dosyaya kaydedelim
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
array("To" => "atmaca@example.com", // anahtarlı sözdizimi
"From: CEO <ceo@example.com>", // indisli sözdizimi
"Subject" => "Kişiye özel"))) {
// iletiyi şifreleyip gönderelim!
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>