最近在对接 api,给到的文档代码示例用了 mcrypt_encrypt,但我本机环境是 php7.2,因为 mcrypt_encrypt 在 7.1 后被废除了,那么我尝试这样进行替换:
把
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $json, MCRYPT_MODE_CBC, $iv);
替换成
openssl_encrypt($json, "aes-128-cbc", $privateKey, OPENSSL_RAW_DATA, $iv);
最后得出的加密结果不一致。 google 一番发现是 pkcs5 和 pkcs7 的区别造成的,openssl_encrypt 默认使用了 pkcs7 填充。
因为对加密知识一无所知,到了这里无法下手了,请高手解疑: 如何才能顺利获得一致的加密结果,并且解密的时候需要注意什么?
(不太会排版,逃)