[英]Decrypt AES-256-CFB in PHP with openssl instead mcrypt
以下功能可正确解密php5中的数据
function decrypt_mcrypt($key, $str) {
$str = base64_decode($str);
$iv = substr($str, 0, 16);
$str = substr($str, 16);
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CFB, $iv);
}
我试图使用openssl而不是mcrypt(在php7中),但是在输出中出现了垃圾。
function decrypt_openssl($key, $str) {
$str = base64_decode($str);
$iv = substr($str, 0, 16);
$str = substr($str, 16);
return openssl_decrypt($str, 'AES-256-CFB', $key, OPENSSL_RAW_DATA, $iv);
}
可能是什么问题呢?
openssl_decrypt
使用PKCS#5填充,其中mcrypt
消息填充为零。
根据文档使用openssl_decrypt
时,请尝试使用OPENSSL_ZERO_PADDING
选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.