今天在交接别人代码的时候遇到的,微信第三方平台解密报的错误,原因:
如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.
解决方案:去官方下载JCE无限制权限策略文件。
JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
另:换openjdk吧,就不会有这个问题
本文解决微信第三方平台因密钥长度超过128位而引发的java.security.InvalidKeyException异常。详细介绍了美国软件出口控制导致的Java运行环境政策文件限制,并提供了解决方案:下载并替换JCE无限制权限策略文件。
1709

被折叠的 条评论
为什么被折叠?



