2

我正在尝试进行一些 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);
4

1 回答 1

4

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

您无法更改块大小,但可以更改密钥大小。AES 指定支持 128、192 和 256 位密钥。

于 2019-05-03T12:19:14.333 回答