有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

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