我正在尝试进行一些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);
答案 0 :(得分:4)
AES的块大小为128位。这不取决于您使用的密钥大小。
您不能更改块大小,但是可以更改密钥大小。 AES被指定为支持128、192和256位密钥。