【问题标题】:java aes 256 java.security.InvalidKeyException: Illegal key size after installation the policy [duplicate]java aes 256 java.security.InvalidKeyException:安装策略后密钥大小非法[重复]
【发布时间】:2014-01-15 03:29:06
【问题描述】:

我在使用 AES 256 密钥加密字节时遇到问题。 我已经安装了策略。这是我所做的:

  1. 下载文件:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
  2. 我将文件 local_policy 和 US_export_policy 移动到目录 /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/security
  3. 我重启了mac

但我仍然收到带有以下代码的错误消息:

KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
Cipher decryption = Cipher.getInstance("AES/CBC/PKCS5PADDING");
decryption.init(Cipher.DECRYPT_MODE, secretKey, 
new IvParameterSpec(secretKey.getEncoded())); // <-- Illegal key size

我的 Java 版本:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

我必须做什么,才能使用 256 AES 加密?

【问题讨论】:

  • 代码格式应该正确。为什么要回滚我修复格式的编辑?
  • 对不起,我不知道你编辑了我的文字。
  • 好的,我把修复放回去了。
  • 请不要将密钥用作 IV - 您将面临恢复密钥的选择密文攻击。如果你必须使用固定的 IV,0 会更安全。
  • 谢谢,但为什么我不应该使用填充?如果不知道密钥长度,那会更安全,不是吗?

标签: java encryption aes sha256


【解决方案1】:

我做了什么 从该位置下载的策略文件 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 粘贴到位置 jre/lib/security/ 它有效....

【讨论】:

    【解决方案2】:

    重要提示:您已经知道自己的 jre 位置。例如:在我的计算机中有C:\Java\jre7\lib\securityC:\Java\jdk1.7.0_02\jre\lib\security,但是eclipse 显示jre 是C:\Java\jre7\lib\security,所以你必须将两个文件复制到这里。

    【讨论】:

      【解决方案3】:

      政策文件应该可以解决这个问题。检查路径环境变量以确认您使用的是具有策略文件的同一 jre。

      【讨论】:

      • 我检查了我的 $JAVA_HOME(结果:“/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home”)或者我使用以下命令启动了我的 java 程序:“/Library/ Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java-jar sec_test.jar”,但它不起作用。之后,我将策略文件复制到另一个目录(“/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/bin”)中,我能够启动程序。好的,它有效,但为什么呢?我检查了 ire 的路径,并使用此 JRE 1.7.0_40 明确启动了该程序。 JRE还有其他设置吗?
      • 检查$PATH环境变量,你会发现你的环境配置了哪个java
      猜你喜欢
      • 2011-10-17
      • 2014-01-13
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2018-08-21
      相关资源
      最近更新 更多