Cipher.getBlockSize () возвращает 128 бит даже с 256-битным ключом - PullRequest
2 голосов
/ 03 мая 2019

Я пытаюсь запустить шифрование AES.Я хочу использовать AES-256.

aesKey.length = 32 или 256 бит.Однако Cipher.getBlockSize() возвращает 16 или 128 бит.Разве Cipher.getBlockSize() не должен возвращать 32 вместо 16, если я использую AES-256?Или я неправильно понимаю этот метод?

Я просто пытаюсь определить, использую ли я 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 Ответ

4 голосов
/ 03 мая 2019

AES имеет размер блока 128 бит. Это не зависит от размера ключа, который вы используете.

Вы не можете изменить размер блока, однако вы можете изменить размер ключа. AES поддерживает 128, 192 и 256-битные ключи.

...