问题
在加密解密时遇到这个问题:java.security.InvalidKeyException:illegal Key Size
问题原因
这是因为微信在进行数据传输的时候,会进行加密,微信使用的AES加密是256位,Java默认使用的解密包是local_policy.jar和US_export_policy.jar,但是这个默认的只支持128位的解密(java版本在1.8.0_161之后就没有这个问题了,默认是支持)。我们的版本低于1.8.0_161,默认是只支持128位的解密。
解决办法
- 到这里选择下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 1.4.2
- 下载jce_policy-1_4_2.zip后解压,放入$JAVA_HOME/jre/lib/security/目录下替换原来的jar包。
- 重启服务