Java Cipher.getBlockSize()返回128位,即使使用256位密钥也是如此

Java Cipher.getBlockSize()返回128位,即使使用256位密钥也是如此,java,encryption,key,aes,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

我正在试着让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);

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


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

块大小和密钥大小不同。。AES块大小始终是128位,密钥大小可以是128位、192位或256位。在使用密码之前,您应该首先查看密码是如何定义的。欧洲央行模式几乎总是不安全的。如何使用
KEY\u SIZE=256
作为常量,然后使用
KEY\u SIZE/Byte.SIZE
作为创建字节数组?那么
SecretKeySpec
的双参数构造函数呢?请注意,我曾多次向我的前任经理表示,对此类细节非常马虎的人不应该接触(我的)加密代码,因为他们会犯错误,有一天会导致可利用的错误。