执行加解密时抛 java.security.InvalidKeyException:illegal Key Size 异常
由于密钥大于 128 位, 会抛出 java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java 运行时环境读到的是受限的 policy 文件. 文件位于 ${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制
解决方案:
方案 A:
去官方下载 JCE 无限制权限策略文件,然后替换对应文件
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
下载后解压,可以看到 local_policy.jar 和 US_export_policy.jar 以及 readme.txt
如果安装了 JRE,将两个 jar 文件放到 %JRE_HOME%\lib\security 目录下覆盖原来的文件
如果安装了 JDK,还要将两个 jar 文件也放到 %JDK_HOME%\jre\lib\security 目录下覆盖原来文件
方案 B:
把 Oracle JDK 更换成 openJDK,openJDK 是 Oracle 免费开源 Java 版本,该版本不存在这种限制,绝大部分 Java 服务也是基于 openJDK 环境运行的