(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ı
sertifikaYa 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çeneklerKodlama 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");
}
?>