データを復号する

# openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decrypt — データを復号する

### 説明

function openssl_decrypt(
string `$data`,
string `$cipher_algo`,
#[\SensitiveParameter]string `$passphrase`,
int `$options` = 0,
string `$iv` = "",
?string `$tag` = `null`,
string `$aad` = ""
): string|false

未加工の、または 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() - データを暗号化する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open