jdk1.8 JCE无限制权限策略文件下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
参考文章:https://github.com/spring-projects/spring-security/issues/3118
在使用JCE加密时,我们有时候会遇到这样的Exception:
java.security.InvalidKeyException:illegal Key Size
要解决这个报错,首先,我们需要知道其原因
这是因为用到了jdk sercurity, 而jdk sercurity 使用的jar包 $JAVA_HOME/lib/security/local_policy.jar 和 $JAVA_HOME/jre6_64/lib/security/US_export_policy.jar中有对技术出口的限制【”万恶“的美帝啊】,加密只有128bit,而没有限制的则有256bit.
那么既然人家已经限制了我们 ,我们怎么办呢 ,甲骨文还是很贴心的,在官网给我们提供了解决方案,接下来就是重头戏了!!!
解决方案
首先你要明确自己的jdk版本 是1.6 还是 1.7 亦或者 1.8
我是1.8,这里用1.8举例 , 其他都是一样的
解决步骤:
1、前往甲骨文官网下载 JCE无限制权限策略文件
也可以直接在网上搜索下面图中文件名
【注意:文件名如上图所示 下载的版本一定要和当前你用的jdk一致
图中由左至右依次为 jdk1.6 jdk1.8 jdk1.7 的JCE无限制权限策略文件】
懒得找的朋友可以在我的csdn资源里下载,这里附上链接
2、下载下来后
对文件进行解压发现其中有两个jar包,将其复制
3、前往你当前使用jdk的安装目录
复制并覆盖%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar
【注意:覆盖之前最好将原来的local_policy.jar 和 US_export_policy.jar 备份,原因大家都懂】
4、最后一步啦
重新启动你的tomcat,如果不出意外,你会惊喜的发现,刚刚的报错没有啦!!!!