mcrypt_decrypt,openssl_decrypt和0x06065064 EVP_DecryptFinal错误

时间:2016-05-31 08:51:47

标签: php openssl mcrypt

我的openssl_decrypt功能存在问题。

示例代码:

// mcrypt
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);

// OpenSSL
$decrypted = openssl_decrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);

mcrypt_decrypt功能正常。但openssl_decrypt会返回FALSE并出现以下错误:

  

错误:06065064:数字信封例程:EVP_DecryptFinal_ex:解密错误

密钥长度为32个字节,iv为16个字节。

有谁知道什么是错的?

1 个答案:

答案 0 :(得分:4)

问题的解决方案是OPENSSL_RAW_DATAOPENSSL_ZERO_PADDING

$decrypted = openssl_decrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);