openssl_decrypt

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

openssl_decrypt解密数据

说明

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

密钥。

options

options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

非空的初始化向量。

tag

AEAD密码模式中的身份验证标签。 如果是错误的,验证失败,函数返回false.

警告

函数不检查 tag 的长度。调用者有责任确保 tag 的长度与调用 openssl_encrypt() 时检索到的 tag 的长度相匹配。否则,如果给定的 tag 仅匹配正确 tag 的开头,解密可能会成功。

aad

额外的认证数据。

返回值

成功时已解密的字符串 或者在失败时返回 false

错误/异常

如果通过 cipher_algo 参数传递的是未知的加密算法,将会抛出 E_WARNING 等级的错误。

如果通过iv参数传递的是一个空值,将会抛出一个 E_WARNING 等级的错误。

更新日志

版本 说明
8.1.0 tag 现在可为 null。
7.1.0 添加了 tagaad 参数。

参见

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top