为什么是使用代码KeyGenerator keyGenerator = KeyGenerator.getInstance(AES); keyGenerator.init(128); SecretKey secretKey = keyGenerator.generateKey(); byte[] encodedKey = key.getBytes(); return new SecretKeySpec(encodedKey, AES);还是会报错key length not 128/192/256
时间: 2024-02-07 07:01:53 浏览: 55
AES.rar_AES_AES加密 java_AES加密解密_aes java_java aes
在你提供的代码中,出现错误的原因是在生成密钥的时候使用了错误的byte数组。在代码中,使用了一个名为`key`的字符串,并将其转换为byte数组,但是这并不是一个符合要求的密钥。
如果你想要生成一个符合要求的AES密钥,可以使用以下代码:
```
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128); // 或者使用192或256
SecretKey secretKey = keyGenerator.generateKey();
return secretKey;
```
这个代码块将生成一个符合要求的AES密钥,并将其返回。你可以直接使用这个密钥,而不需要进行任何转换。如果你需要将密钥转换为byte数组进行存储或传输,可以使用以下代码:
```
byte[] encodedKey = secretKey.getEncoded();
```
这个代码块将返回一个byte数组,其中包含了生成的AES密钥的所有字节。
阅读全文