AES密钥长度无效:128字节?

时间:2014-04-30 15:24:11

标签: java encryption aes

我正在线上<{1}}

java.security.InvalidKeyException: Invalid AES key length: 128 bytes

CIPHER

CIPHER.init(Cipher.ENCRYPT_MODE, keySpec);

和keySpec

Cipher CIPHER = Cipher.getInstance("AES");

那个密钥是长度为128的SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); 我通过Diffie-Hellman密钥交换得到了(虽然我得到它的位置无关紧要,对吧?),byte[]完全填满非零字节

为什么key抱怨密钥长度错误? This webpage明确指出支持长度为128的密钥。

我在俯瞰什么?

2 个答案:

答案 0 :(得分:7)

我认为你需要128位密钥用于AES算法 - 而不是128字节。要将长密钥转换为所需长度,您可以尝试使用基于密码的密钥派生函数。例如,参见PBKDF2。

答案 1 :(得分:3)

AES算法允许128,192或256位密钥长度。这是16,24或32字节。您的密钥长度应为16,24或32字节。