已安装JCE Unlimited Strength但不支持AES 256

时间:2014-08-15 03:05:52

标签: java encryption cryptography jce

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

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

  1. C:\ Program Files \ Java \ jre7
  2. C:\发展\爪哇\ jdk1.6.0_21
  3. 谁能告诉我安装JCE无限力量的正确位置在哪里? 非常感谢您的帮助。

    我的代码:

     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);         
            }
    

1 个答案:

答案 0 :(得分:3)

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

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

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