默认Java的AES最大支持128bit的密钥,如果使用256bit的密钥,会抛出一个异常:

java.security.InvalidKeyException: Illegal key size


其实Java官网上提供了解决方案,需要下载“Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8”,替换JDK/JRE里的2个jar包。


下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html


JCE的入口在JavaSE页面向下拉,找到“Additional Resources”,里面就能看到:

Java默认不支持AES256_第1张图片


下载会得到一个zip包,将里面的local_policy.jar和US_export_policy.jar解压到JDK安装目录\jre\lib\security下覆盖原文件即可,独立JRE的话也是覆盖相同路径的文件。