openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_encryptBir S/MIME iletiyi şifreler

Açıklama

openssl_pkcs7_encrypt(
    string$girdi_dosyası,
    string$çıktı_dosyası,
    OpenSSLCertificate|array|string$sertifika,
    ?array$başlıklar,
    int$seçenekler = 0,
    int$algoritma = OPENSSL_CIPHER_AES_128_CBC
): bool

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.

Bağımsız Değişkenler

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.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

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.0sertifika artık OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL X.509 CSR özkaynağı kabul edilirdi.

Örnekler

Ö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");
}
?>
To Top