gpt4 book ai didi

java - 3DES 解密错误无效 key 长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:58 24 4
gpt4 key购买 nike

我正在使用 3DESC 解密数据,但出现以下异常

java.security.InvalidKeyException: Invalid key length: 16 bytes

我的代码:

public static byte[] decrypt3DESCBC(byte[] keyBytes, byte[] ivBytes,
byte[] dataBytes) {
try {
AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes);
SecretKeySpec newKey = new SecretKeySpec(keyBytes, "DESede");
Cipher cipher = Cipher.getInstance("DESede/CBC/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, newKey, ivSpec); // Causes Exception
return cipher.doFinal(dataBytes);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

打印上面使用的所有字节数组

keyBytes : FC15780BB4B0**********0876482C1B // Masked 10 Characters
ivBytes : 0000000000000000
dataBytes : AF53C90F7FAD977E**********69DB5A2BF3080F9F07F4BFEA3EDB4DE96887BE7D40A5A590C0911A // Masked 10 Characters

最佳答案

DES-EDE 密码可用于 3 个不同的子 key ,因此 key 大小应为 24 字节(3 乘以 8 字节)。如果您只想使用 2 个键(即在此模式下第一个键 == 最后一个键),那么您只需复制键数组的前 8 个字节。

byte[] key;
if (keyBytes.length == 16) {
key = new byte[24];
System.arraycopy(keyBytes, 0, key, 0, 16);
System.arraycopy(keyBytes, 0, key, 16, 8);
} else {
key = keyBytes;
}

关于java - 3DES 解密错误无效 key 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56138129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com