mcrypt_decrypt可以正常解密 ,openssl_decrypt没法解密?返回false
$ret = openssl_decrypt('N3fthdRHiCTmj2kyoiUOlw==', 'AES-128-ECB', 'v466vazrnpeng66r');
var_export($ret);
$ret = mcrypt_decrypt('rijndael-128', 'v466vazrnpeng66r', base64_decode('N3fthdRHiCTmj2kyoiUOlw=='), 'ecb');
$ret = rtrim($ret, "\0");
var_export($ret);die;
openssl_decrypt使用的时候第四个参数填写为OPENSSL_ZERO_PADDING即可解开
为什么要加OPENSSL_ZERO_PADDING,我的理解是mcrypt_decrypt可以解开这个加密串,应该密文采用的填充方式应该是补0填充的,所以openssl解密需要指定OPENSSL_ZERO_PADDING填充方式解密。因为openssl_encrypt中options选项0和1默认采用都是PKCS7填充方式
而OPENSSL_ZERO_PADDING是补0填充。
在openssl_encrypt中参数option的含义
options :