AES加密算法是128位的对称分组密码算法,按JDK的帮助手册描述是可以支持128bits, 192bits, 256bits 等长度的密钥调用,但最近使用Java调用AES_256加解密运算时报错:

java.security.InvalidKeyException: Illegal key size or default parameters


最终弄清原因是默认安装的JDK中限制了某些高强度密码算法的使用(如AES-256),根据现在Oracle的说明,是出于部分地区的政策约束导致有此限制,原文链接

好在Oracle官方提供了办法来解除此限制:只需在官网下载解锁的jar包替换JDK安装目录下的对应文件即可。

需替换的位置在 ${java.home}/jre/lib/security/

附各版本解锁库下载链接:

历史版本(低于1.7)
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8

附Oracle官方手册链接(1.5):

Java Cryptography Architecture Standard Algorithm Name Documentation


版权声明:本文为博主原创文章,转载请注明出处。