您现在的位置是:首页 >技术教程 >php7+ openssl AES网站首页技术教程
php7+ openssl AES
简介php7+ openssl AES
查阅的资料
mcrypt_decrypt函数在php7.1正式被禁用,后续使用openssl 进行加解密
openssl_encrypt 加密 openssl_decrypt 解密
踩过的坑
由于我的需求是aes-128-cbc zeropadding 加解密与python java等程序配合。
网上的文章大部分是正确的,但不太详细。 比如正确的openssl_encrypt 但没有告诉你zeropadding 需要的填充方式,或不正确的openssl_encrypt 告诉你加密后需要base64编码。
如何做?
不多说,经过百度得出 php7.1后使用openssl,得出两个关键函数
openssl_encrypt openssl_decrypt
1.openssl_encrypt 加密后不需要base64编码,它已经是base64了。注意
2.openssl_decrypt 解密也不需要先base64解码,直接丢入base64即可!
3.openssl_encrypt 的AES-128-CBC ZEROPADDING加密的明文需要先进行一次填充!
4. key 和 iv 均是16位,据说超出16位php会自动截断,未试过。
5. zeropadding 解密后需要trim一下。
function padZero($data, $blocksize = 16){
$pad = $blocksize - (strlen($data) % $blocksize);
return $data . str_repeat("