使用JDK编写加密和机密的程序时会抛出下面的信息:
写道
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
解决问题的原文:
写道
Most likely you don't have the unlimited strength file installed now.
You may need to download this file:
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
Extract the jar files from the zip and save them in ${java.home}/jre/lib/security/.
You may need to download this file:
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
Extract the jar files from the zip and save them in ${java.home}/jre/lib/security/.
地址: http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters
下载许可文件的地址:注意自己JDK的版本
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
产生上面问题的根本原因:是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。主要是因为JDK的厂商是美国企业。美国对加密和解密的算法和工具有严格的出口限制。
在中国你可以通过上面的链接下载许可文件,把里面的两个jar包:local_policy.jar 和 US_export_policy.jar 替换掉原来安装目录${java.home}/jre/lib/security/
.
这样问题就解决了。