openssl_seal
データをシール(暗号化)する
&reftitle.description;
intfalseopenssl_seal
#[\SensitiveParameter]stringdata
stringsealed_data
arrayencrypted_keys
arraypublic_key
stringcipher_algo
stringiv&null;
openssl_seal は、指定された cipher_algo を使用して
ランダムに生成された秘密鍵で data をシール(暗号化)します。
その鍵は続いて public_key 配列内の各公開鍵で暗号化され、
それぞれ暗号化されたエンベロープキーは encrypted_keys パラメータで返されます。
これによって、(公開鍵が利用可能なら) 複数の受信者にシールされた
データを送信できます。各受信者は、シールされたデータと受信者の公開鍵で暗号化されたエンベロープキー
の両方を受け取らなければいけません。
生成された IV (初期化ベクトル) は iv パラメータで返されます。
&reftitle.parameters;
data
シールするデータ。
sealed_data
シール済みのデータ。
encrypted_keys
暗号化したキーの配列。
public_key
公開鍵を含んだ OpenSSLAsymmetricKey
クラスのインスタンスの配列。
cipher_algo
暗号化方式
PHP 8.0 より前のデフォルト値 ('RC4') は安全ではありません。
明示的にセキュアな暗号化方式を指定することを強く推奨します。
iv
dataの復号に用いられる初期化ベクトル。暗号方式が IV を要求する場合に必要です。
これは cipher_algo で openssl_cipher_iv_length
を呼び出すことで確認できます。
初期化ベクトルは明示的に設定できません。設定された値はランダムに生成された値で上書きされます。
&reftitle.returnvalues;
成功時にシール(暗号化)されたデータの長さ、エラー時に &false;
を返します。成功時には、暗号化されたデータが
sealed_data に、エンベロープキーが
encrypted_keys に返されます。
&reftitle.changelog;
&Version;
&Description;
8.0.0
public_key は、
OpenSSLAsymmetricKey クラスのインスタンスの配列を受け入れるようになりました。
これより前のバージョンでは、
OpenSSL key 型のリソースの配列を受け入れていました。
8.0.0
cipher_algo は、オプションではなくなりました。
8.0.0
iv は、nullable になりました。
&reftitle.examples;
openssl_seal の例
0) {
// $sealed と $iv の値を格納し、後で openssl_open で使用することもできます。
echo "success\n";
}
?>
]]>
&reftitle.seealso;
openssl_open