Cipher.getBlockSize()即使使用256位密钥也返回128位

时间:2019-05-02 22:41:46

标签: java encryption key aes

我正在尝试进行一些AES加密。我想使用AES-256。

aesKey.length = 32或256位。但是,Cipher.getBlockSize()返回16或128位。如果我使用的是AES-256,Cipher.getBlockSize()是否应该返回32而不是16?还是我误解了这种方法?

我只是想确定我使用的是AES-128还是-256。

byte[] aesKey = new byte[32];

SecretKey originalKey = new SecretKeySpec(aesKey, 0, aesKey.length, "AES");
Cipher enc = Cipher.getInstance("AES/ECB/PKCS5Padding");
enc.init(Cipher.ENCRYPT_MODE, originalKey);

System.out.println(enc.getBlockSize() * 8);

1 个答案:

答案 0 :(得分:4)

AES的块大小为128位。这不取决于您使用的密钥大小。

您不能更改块大小,但是可以更改密钥大小。 AES被指定为支持128、192和256位密钥。