使用Bouncy Castle的AES 256bit加密:仍然需要无限强度政策?

Sve*_*obs 2 java encryption bouncycastle aes

我想在Bouncy Castle中使用AES 256位加密,我想知道是否仍然需要" Java密码学扩展(JCE)无限强度管辖权政策文件 ",因为我收到java.security.InvalidKeyException: Illegal key size以下代码的例外:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?有没有办法在没有无限强度政策文件的情况下使用256位密钥?

jta*_*orn 5

在bouncycastle FAQ中的第一个问题.

  • 当真?我仍然要安装java无限强度策略添加..?没有办法(图书馆)没有这样做吗? (2认同)