加密一個 S/MIME 訊息

openssl_pkcs7_encrypt

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

openssl_pkcs7_encrypt加密一個 S/MIME 訊息

說明

openssl_pkcs7_encrypt(
    string $infile,
    string $outfile,
    mixed $recipcerts,
    array $headers,
    int $flags = 0,
    int $cipherid = OPENSSL_CIPHER_RC2_40
): bool

openssl_pkcs7_encrypt() 獲取檔名為infile的檔案內容並使用 RC2 40位的密碼將之加密,以至於他們只能被預期的名為recipcerts的接收者閱讀。

參數

infile

outfile

recipcerts

一個單獨的X.509證書,或者一個X.509證書的陣列。

headers

headers 是包含頭資訊的陣列,在被加密后將對數據進行預處理。

headers 可以是以頭名為鍵值的關聯陣列,也可以是一個索引陣列,其中每個元素都包含一個單獨的標題行

flags

flags用來指定影響編碼過程的選項 - 參見 PKCS7 常量.

cipherid

密碼常量之一。

返回值

成功時返回 true, 或者在失敗時返回 false

範例

示例 #1 openssl_pkcs7_encrypt() 範例

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file 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;

// load key
$key file_get_contents("nighthawk.pem");

// save message to file
$fp fopen("msg.txt""w");
fwrite($fp$data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt""enc.txt"$key,
    array(
"To" => "[email protected]"// keyed syntax
          
"From: HQ <[email protected]>"// indexed syntax
          
"Subject" => "Eyes only"))) {
    
// message encrypted - send it!
    
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *