Java实现AES加密,异常java.security.InvalidKeyException: Illegal key size 的解决

报错原因:这是因为用到了jdk sercurity, 而jdk sercurity 使用的jar包 JAVAHOME/lib/security/localpolicy.jar JAVA_HOME/jre6_64/lib/security/US_export_policy.jar中有对技术出口的限制,加密只有128bit,而没有限制的则有256bit.
Illegal key size or default parameters 是指密钥长度受限制,
Java运行时环境读到的是受限的policy文件。
policy文件位于${java_home}/jre/lib/security 目录下。
这种限制是因为美国对软件出口的控制。

解决办法:

(1)去除该限制只需下载 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,
覆盖上述目录下的对应jar文件(local_policy.jar, US_export_policy.jar)即可。
下载地址:
JDK6 http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JDK7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

(2)下载成功后解压jar包,将里面的两个jar包复制后替换
jdkhome/jre/lib/security {jre_home}/lib/security
目录下的 local_policy.jar 和 US_export_policy.jar 文件。

(3)重启服务器即可。

你可能感兴趣的:(【微信开发】-----提高篇)