Php/docs/function.openssl-pkcs7-encrypt

提供:Dev Guides
< Php
移動先:案内検索

openssl_pkcs7_encrypt

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

openssl_pkcs7_encryptS/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// 暗号化するメッセージを nighthawk という名前の外部の秘密の// エージェントに送信します。送信先の証明書をファイル nighthawk.pem に// 有しています。$data = <<<EODNighthawk,Top secret, for your eyes only!The enemy is closing in! Meet me at the cafe at 8.30amto collect your forged passport!HQEOD;// キーを読み込む$key = file_get_contents("nighthawk.pem");// ファイルにメッセージを保存$fp = fopen("msg.txt", "w");fwrite($fp, $data);fclose($fp);// メッセージを暗号化if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,    array("To" => "nighthawk@example.com", // 連想配列の構文          "From: HQ <hq@example.com>", // 添字配列の構文          "Subject" => "Eyes only"))) {    // メッセージを暗号化し、送信します!    exec(ini_get("sendmail_path") . " < enc.txt");}?>