查询

openssl_decrypt()函数—用法及示例

「 对使用 OpenSSL 加密的数据进行解密 」


函数名称:openssl_decrypt()

函数描述:openssl_decrypt() 函数用于对使用 OpenSSL 加密的数据进行解密。

适用版本:该函数适用于 PHP 5 >= 5.3.0, PHP 7, PHP 8

用法: openssl_decrypt(string $data, string $method, string $password, int $options = 0, string $iv = "", string $tag = "", string $aad = "")

参数:

  • $data:要解密的数据,通常是使用 openssl_encrypt() 函数加密后的数据。
  • $method:指定加密算法,可以是以下之一:
    • "AES-128-CBC":128 位 AES 加密算法,使用 CBC 模式。
    • "AES-192-CBC":192 位 AES 加密算法,使用 CBC 模式。
    • "AES-256-CBC":256 位 AES 加密算法,使用 CBC 模式。
    • "BF-CBC":Blowfish 加密算法,使用 CBC 模式。
    • "CAST5-CBC":CAST5 加密算法,使用 CBC 模式。
    • "DES-CBC":DES 加密算法,使用 CBC 模式。
    • "DES-EDE3-CBC":3DES 加密算法,使用 CBC 模式。
    • "RC2-CBC":RC2 加密算法,使用 CBC 模式。
    • "RC4":RC4 加密算法。
  • $password:用于解密的密码。
  • $options:可选参数,指定解密选项。默认为 0,表示不使用任何选项。可以使用以下选项的按位或(|)组合:
    • OPENSSL_RAW_DATA:指定解密结果以原始二进制数据返回,而不是默认的 base64 编码字符串。
    • OPENSSL_ZERO_PADDING:指定禁用自动填充功能,解密时不会自动删除填充的数据。
  • $iv:可选参数,指定初始化向量(IV)。在使用 CBC 或 ECB 模式时需要提供。
  • $tag:可选参数,指定验证标签。在使用 AEAD 加密算法时需要提供。
  • $aad:可选参数,指定附加的认证数据。在使用 AEAD 加密算法时需要提供。

返回值:解密成功时返回解密后的数据,失败时返回 false。

示例:

$key = "my_secret_key";
$encryptedData = "U2FsdGVkX1/9r9lq7rX7V1Uv+Gc9Z3w8";

$decryptedData = openssl_decrypt($encryptedData, "AES-256-CBC", $key, 0);
echo $decryptedData; // 输出:Hello World!

注意事项:

  • 请确保 OpenSSL 扩展已启用,可以通过在 php.ini 文件中取消注释 extension=openssl 来启用。
  • 使用正确的密码和加密算法进行解密,否则会导致解密失败。
  • 在使用 CBC 或 ECB 模式时,需要提供正确的初始化向量(IV)。
  • 在使用 AEAD 加密算法时,需要提供正确的验证标签和附加的认证数据。
补充纠错
上一个函数: openssl_digest()函数
下一个函数: openssl_csr_sign()函数
热门PHP函数
分享链接