У меня есть функция javascript, использующая CryptoJS для шифрования 8-байтового блока с помощью ключа 3DES.
Функция работает с ключом 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 ():
Блок 040502CFFFFEFDEE, зашифрованный ключом 01010101010101010101010101010101, является C9478CAA27ABA56A, и этот вывод правильный.
Но для того же блока блок 040502CFFFFEFDEE, зашифрованный ключом ADADADADADAD0101ADADADADADAD0202, имеет тип A413ABD86D52DFFB, и этот вывод неправильный, правильным будет F6A1C5ACA15A50C3.
Не могли бы вы помочь мне понять, почему функция работает нормально только с первой клавишей?