我有在Java中AES自定义键,而不是16,24个或32字节
与键AES问题,这是我的代码:
public Core(String key) {
try {
this.SecretKey = key;
this.ivspec = new IvParameterSpec(this.iv.getBytes());
this.keyspec = new SecretKeySpec(SecretKey.getBytes("UTF-8"), "AES");
try {
this.cipher = Cipher.getInstance("AES/CBC/NoPadding");
} catch (Exception e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
每当我把这个字符串的“钥匙”,它包含例如Pizza
,它只是产生错误。当我传递一个包含16个字节的字符串时,它可以工作。我想使用AES,但我不希望它仅限于16,24或32字节。我怎样才能解决这个问题。
我刚刚被一个加密中小企业问道:“你为什么要使用非标准的密钥大小? – zaph