最近碰到个需求,要用AES加解密数据,然后发现PHP AES加密后的数据用 JAVA AES解密失败。对比二者加密后的数据,发现前面一部分是一致的,尾部开始出现不一致。

于是翻看资料,确认问题原因是由于PKCS5Padding不一致造成的。

最终解决方案,从Github里摘了两段代码,一个pkcs5_pad、一个pkcs5_unpad,在加密前用pkcs5_pad,解密后用pkcs5_unpad即可解决问题。

参考资料:
https://www.cnblogs.com/chenguoli/p/7607155.html
https://stackoverflow.com/questions/6939203/php-aes-encryption-pkcs5padding
https://gist.github.com/roshanpal/37acd854a889f7b73a1c

Related Posts: PHP AES 和 JAVA AES :

avatar