我有一个使用 CryptoJS 的 javascript 函数来使用 3DES 密钥加密一个 8 字节的块。
该函数正在使用密钥 01010101010101010101010101010101,但它不适用于密钥 ADADADADADAD0101ADADADADADAD0202。
function enc3DES(keyHex){
var block = "040502CFFFFEFDEE";
var encrypted = CryptoJS.DES.encrypt(CryptoJS.enc.Hex.parse(block), CryptoJS.enc.Hex.parse(keyHex), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
encrypted = encrypted.ciphertext.toString();
return encrypted.substr(0, 8*2).toUpperCase();
}
使用上述函数 enc3DES():使用密钥 01010101010101010101010101010101 加密的块 040502CFFFFEFDEE 是 C9478CAA27ABA56A 并且此输出是正确的。
但是同一个块 040502CFFFFEFDEE 用密钥 ADADADADAD0101ADADADADADAD0202 加密的块是 A413ABD86D52DFFB 并且这个输出是错误的,正确的应该是 F6A1C5ACA15A50C3。
你能帮我理解为什么这个功能只能用第一个键才能正常工作吗?
PIPIONE
相关分类