【问题标题】:JCE Unlimited Strength installed but AES 256 is not supported已安装 JCE Unlimited Strength 但不支持 AES 256
【发布时间】:2014-08-15 03:05:52
【问题描述】:

我已将 JCE Unlimited strength 安装到 JAVA_HOME\lib\security
但是,Cipher.getMaxAllowedKeyLength("AES") 我仍然得到 128。

我想知道我是否在错误的位置安装了 JCE。
我在 2 个地方安装了 Java。

  1. C:\Program Files\Java\jre7
  2. C:\Development\Java\jdk1.6.0_21

谁能告诉我安装JCE Unlimited strength 的正确位置在哪里? 非常感谢您的帮助。

我的代码:

 KeyGenerator generator = KeyGenerator.getInstance("AES");      
 generator.init(256);       SecretKey secretKey = generator.generateKey();      
 byte[] raw= secretKey.getEncoded();        
 SecretKeySpec sskey= new SecretKeySpec(raw, "AES");

        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");         
        if (mode == Cipher.ENCRYPT_MODE) { 
           Cipher.getMaxAllowedKeyLength("AES"));   
           cipher.init(Cipher.ENCRYPT_MODE, sskey);             
           CipherInputStream cis = new CipherInputStream(is, cipher); 
           doCopy(cis, os);         
        } else if (mode == Cipher.DECRYPT_MODE) { 
           cipher.init(Cipher.DECRYPT_MODE, sskey); 
           CipherOutputStream cos = new CipherOutputStream(os, cipher);             
           doCopy(is, cos);         
        }

【问题讨论】:

  • 你能显示你使用的代码吗?它应该只取决于您使用的密钥的长度。
  • 更新了我的代码。谢谢。

标签: java encryption cryptography jce


【解决方案1】:

您需要将文件安装到要运行您的代码的任何 JVM 中。为了安全起见,我建议在两者中都安装它。

我注意到您有两个不同的版本:用于 JRE 的 Java 7 和用于 SDK 的 Java 6。请记住,Java 6 和 7 具有不同的无限强度策略文件,因此您需要同时下载这两个文件集。

  • 对于 JRE,安装到 C:\Program Files\Java\jre7\lib\security
  • 对于 JDK,安装到 C:\Development\Java\jdk1.6.0_21\jre\lib\security

【讨论】:

  • 如何确定哪个JVM在运行我的代码?我实际上已经为这两组安装了正确的版本,但仍然出现错误。
  • @user3034683 这取决于你如何运行它。如果它来自 IDE,则需要深入研究设置并查看正在使用的内容。如果它来自命令行,那么您的%PATH% 上的第一个Java 可执行文件正在被使用。尝试从命令行运行它,并专门尝试每个 JVM。请注意,您将无法在 Java 6 中运行为 Java 7 编译的任何内容。
  • 您能否也将堆栈跟踪添加到您的问题中,以防我们遇到稍微不同的问题?
  • @user3034683 是的。无论您想在哪里运行它,都必须安装这些策略文件。
  • 您可以从源代码中查看system properties,它应该包含有关当前JRE的信息。
猜你喜欢
  • 2017-09-25
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
相关资源
最近更新 更多