线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2130字,纯文字阅读大概需要4分钟。
内容图文
![线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数](/upload/InfoBanner/zyjiaocheng/708/d1f9a4ba53a443c3a6c30a8e9e84fdae.jpg)
参见英文答案 > InvalidKeyException Illegal key size 5个
下面的代码抛出此错误消息:
线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数
Cipher dcipher;
byte[] salt = new String("12345678").getBytes();
int iterationCount = 1024;
int keyStrength = 256;
SecretKey key;
byte[] iv;
Decrypter(String passPhrase) throws Exception {
SecretKeyFactory factory = SecretKeyFactory
.getInstance("PBKDF2WithHmacSHA1");
System.out.println("factory +" + factory);
KeySpec spec = new PBEKeySpec(passPhrase.toCharArray(), salt,
iterationCount, keyStrength);
System.out.println("spec " + spec);
SecretKey tmp = factory.generateSecret(spec);
System.out.println();
key = new SecretKeySpec(tmp.getEncoded(), "AES");
dcipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
}
public String encrypt(String data) throws Exception {
dcipher.init(Cipher.ENCRYPT_MODE, key);
AlgorithmParameters params = dcipher.getParameters();
iv = params.getParameterSpec(IvParameterSpec.class).getIV();
byte[] utf8EncryptedData = dcipher.doFinal(data.getBytes());
String base64EncryptedData = new sun.misc.BASE64Encoder()
.encodeBuffer(utf8EncryptedData);
System.out.println("IV "
+ new sun.misc.BASE64Encoder().encodeBuffer(iv));
System.out.println("Encrypted Data " + base64EncryptedData);
return base64EncryptedData;
有人知道我为什么会收到这个错误吗?
解决方法:
可能你还没有安装JCE Policy文件.
下载此文件:
并在${java.home} / jre / lib / security /中安装该文件.
${java.home}指的是Java的安装目录
对于mac:
>开放式发现者
>按命令shift g
> type / Library / Java / JavaVirtualMachines
>导航到您的JDK版本
>然后是Contents / Home / jre / lib / security
>解压缩下载的文件并将所有文件放在此处
用于CLI
unzip downloaded_policy_file.zip -d /Library/Java/JavaVirtualMachines/<JDK_VERSION>/Contents/Home/jre/lib/security/
mv /Library/Java/JavaVirtualMachines/<JDK_VERSION>/Contents/Home/jre/lib/security/UnlimitedJCEPolicyJDK<VERSION>/* /Library/Java/JavaVirtualMachines/<JDK_VERSION>/Contents/Home/jre/lib/security
rm -rf Library/Java/JavaVirtualMachines/<JDK_VERSION>/Contents/Home/jre/lib/security/UnlimitedJCEPolicyJDK<VERSION>/
内容总结
以上是互联网集市为您收集整理的线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数全部内容,希望文章能够帮你解决线程“main”中的异常java.security.InvalidKeyException:非法的键大小或默认参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。