我正在线上<{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的密钥。
我在俯瞰什么?
答案 0 :(得分:7)
我认为你需要128位密钥用于AES算法 - 而不是128字节。要将长密钥转换为所需长度,您可以尝试使用基于密码的密钥派生函数。例如,参见PBKDF2。
答案 1 :(得分:3)
AES算法允许128,192或256位密钥长度。这是16,24或32字节。您的密钥长度应为16,24或32字节。