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_algoopenssl_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; <function>openssl_seal</function> の例 0) { // $sealed と $iv の値を格納し、後で openssl_open で使用することもできます。 echo "success\n"; } ?> ]]> &reftitle.seealso; openssl_open