Illegal key size 报错问题
Illegal key size
javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1029)
javax.crypto.Cipher.implInit(Cipher.java:795)
javax.crypto.Cipher.chooseProvider(Cipher.java:854)
javax.crypto.Cipher.init(Cipher.java:1374)
javax.crypto.Cipher.init(Cipher.java:1308)
com.focustech.common.codec.encrypter.AES256Encrypter.cipher(AES256Encrypter.java:37)
com.focustech.common.codec.encrypter.AES256Encrypter.encrypt(AES256Encrypter.java:45)
异常原因:如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.
解决办法也很简单:
将下面链接中的jar包下载下来,替换jdk 与jre下两个jar包:local_policy.jar和 US_export_policy.jar即可。
jdk对应jar包的路径:D:\Java\jdk1.7.0_25\jre\lib\security
jre对应jar包的路径:D:\Java\jre7\lib\security
本文介绍了解决Java中使用AES256加密算法时遇到的Illegalkeysize异常问题。异常出现的原因在于Java运行时环境读取了受限的policy文件,限制了密钥长度。文章提供了解决方案,即通过替换jdk和jre下的local_policy.jar和US_export_policy.jar文件来解除密钥长度限制。
725

被折叠的 条评论
为什么被折叠?



