在使用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官网下载不了,也可以点这里立即下载https://download.youkuaiyun.com/download/chw0629/85449988
这里用1.8举例 , 其他都是一样的
解决步骤:
1、下载 JCE无限制权限策略文件
2、前往你当前使用jdk的安装目录
复制并覆盖%JAVA_HOME%/jre/lib/security下的local_policy.jar 和 US_export_policy.jar