2012-10-15 25 views
2

我想使用AES 256位加密与Bouncy Castle,我想知道如果“Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files”仍需要尽管BC,因为我收到java.security.InvalidKeyException: Illegal key size例外下面的代码:带有Bouncy Castle的AES 256bit加密:无限强度策略仍然需要?

public class AES256 { 
    public static void main(String[] args) throws Exception { 
     Security.addProvider(new BouncyCastleProvider()); 

     final KeyGenerator keyGen = KeyGenerator.getInstance("AES"); 
     keyGen.init(256); // doesn't work for 192, too 

     final byte[] encoded = keyGen.generateKey().getEncoded(); 

     final SecretKeySpec keySpec = new SecretKeySpec(encoded, "AES"); 
     final Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC"); 
     // Please ignore static IV for this example 
     final IvParameterSpec iv = new IvParameterSpec(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}); 

     c.init(Cipher.ENCRYPT_MODE, keySpec, iv); // throws java.security.InvalidKeyException: Illegal key size 
    } 
} 

我在想什么?有没有一种方法可以使用没有Unlimited Strength策略文件的256位密钥?

回答

5

第一个问题在bouncycastle FAQ

+1

谢谢。我在Bouncy Castle网站的文档下寻找常见问题解答,但不在Wiki下。所以BC提供了更好的(AES)加密算法,但并没有规避无限强度策略问题。我希望能够阻止应用程序用户的安装步骤。 –

+2

认真吗?我仍然必须安装Java无限强度策略添加..?没有办法(图书馆)没有办法吗? – tObi

相关问题