我有一個使用 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。你能幫我理解為什么這個功能只能用第一個鍵才能正常工作嗎?
Javascript 加密函數中的 3DES 十六進制密鑰
肥皂起泡泡
2021-07-06 13:22:05