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
记得备份