java密码。getBlockSize()返回128位,即使使用256位密钥也是如此
我正在试着让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 楼答案
AES的块大小为128位。这并不取决于您使用的密钥大小
不能更改块大小,但可以更改键大小。AES被指定为支持128、192和256位密钥