openssl_decrypt
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
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-
options可以是以下常量之一:OPENSSL_RAW_DATA、OPENSSL_ZERO_PADDING或OPENSSL_DONT_ZERO_PAD_KEY。 iv-
非
null的初始化向量。如果 IV 比预期短,则用NUL字符填充并发出警告;如果密码短语比预期长,则将其截断并发出警告。 tag-
AEAD密码模式中的身份验证标签。 如果是错误的,验证失败,函数返回
false.警告函数不检查
tag的长度。调用者有责任确保 tag 的长度与调用 openssl_encrypt() 时检索到的 tag 的长度相匹配。否则,如果给定的 tag 仅匹配正确 tag 的开头,解密可能会成功。 aad-
额外的认证数据。
返回值
成功时已解密的字符串 或者在失败时返回 false。
更新日志
| 版本 | 说明 |
|---|---|
| 8.1.0 | tag 现在可为 null。 |
| 7.1.0 | 添加了 tag 和 aad 参数。 |