在使用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

JDK6密码扩展无限制权限策略文件
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

JDK7密码扩展无限制权限策略文件
https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8密码扩展无限制权限策略文件
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

通过上面oracle官网下载不了,也可以点这里立即下载icon-default.png?t=M4ADhttps://download.csdn.net/download/chw0629/85449988

这里用1.8举例 , 其他都是一样的

解决步骤:

1、下载 JCE无限制权限策略文件

2、前往你当前使用jdk的安装目录

复制并覆盖%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar


 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐