站内导航

JDK1.8 导致系统报错:java.security.InvalidKeyException:illegal Key Size
Java几乎各种常用加密算法都能找到对应的实现。因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了相应限制。因此存在一些问题

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,如果不出意外,你会惊喜的发现,刚刚的报错没有啦!!!!



©crap.cn  本系统由CrapApi开源项目生成