在使用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无限制权限策略文件,也可以直接在网上搜索下面图中文件名
这两个文件太难找了直接分享给大家
链接:https://pan.baidu.com/s/1A6NehY5xEdA8AH5aGNwqeA
提取码:d3qt
2、下载下来后
对文件进行解压发现其中有两个jar包,将其复制
3、前往你当前使用jdk的安装目录
复制并覆盖%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar
【注意:覆盖之前最好将原来的local_policy.jar 和 US_export_policy.jar 备份,原因大家都懂】
4、最后一步啦
重新启动你的项目,如果不出意外,你会惊喜的发现,刚刚的报错没有啦!!!!