openssl_decrypt

データを復号する

説明

stringfalse openssl_decrypt(
    string $data,
    string $cipher_algo,
    #[\SensitiveParameter]string $passphrase,
    int $options = 0,
    string $iv = "",
    stringnull $tag = null,
    string $aad = ""
)

未加工の、または base64 エンコードされた文字列を受け取り、 与えられた暗号化方式とパスフレーズを使って文字列を復号します。

パラメータ

data

復号化する、暗号化されたメッセージ。

cipher_algo

暗号化方式。利用可能な暗号化方式のリストについては、 openssl_get_cipher_methods を使用してください。

passphrase

パスフレーズ。 期待した長さより短かった場合は、 黙ってNUL 文字で埋められます。 期待した長さより長かった場合は、 黙って切り詰められます。

警告

passphrase は、 その名前から連想されるような安全な鍵生成機能は内包していません。 唯一行う操作は、期待する鍵長と異なる場合に NUL で パディングしたり、切り詰めたりするだけです。

options

OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING, OPENSSL_DONT_ZERO_PAD_KEY のいずれか。

iv

null ではない初期化ベクトル。 IV が期待するものよりも短い場合は、 NUL 文字でパディングされ、警告が発生します。 パスフレーズが期待するものよりも長い場合は、 切り捨てられ、警告が発生します。

tag

AEAD 暗号モードの認証タグ。 正しくない場合、認証は失敗し、関数は false を返します。

警告

tag の長さをこの関数はチェックしません。 この値の長さは openssl_encrypt を呼び出した時に取得できるものと一致させなければならず、それは呼び出し側の責任です。 一致しない場合でも、与えられた値が適切な tag の先頭部分と一致した場合に復号が成功するかもしれません。

aad

追加の認証済みデータ。

戻り値

成功した場合復号化された文字列、失敗した場合に false を返します。

エラー / 例外

cipher_algo パラメータに未知の暗号アルゴリズムが渡された場合、 E_WARNING レベルのエラーが発生します。

iv パラメータに空の値が渡された場合、 E_WARNING レベルのエラーが発生します。

変更履歴

バージョン 説明
8.1.0 tag は、nullable になりました。
7.1.0 tag および aad パラメータが追加されました。

参考

  • openssl_encrypt