шифрование с помощью tripleDes в метеоре - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть код в Asp.net, который шифрует строку с помощью алгоритма TripleDES в режиме EBC и других настроек. и использует ключ, который зашифрован с использованием Base64. Я должен написать этот код в метеоре (javascript). Поэтому я использовал библиотеку CryptoJs, но результаты не совпадают. Вот код Asp.net:

var str;
var key;

var dataBytes = Encoding.UTF8.GetBytes(str);
var symmetric = SymmetricAlgorithm.Create(“TripleDes”);
symmetric.Mode = CipherMode.ECB;
symmetric.Padding = PaddingMode.PKCS7;

var encryptor = symmetric.CreateEncryptor(Convert.FromBase64String(key), new byte[8]);

enc = Convert.ToBase64String(encryptor.TransformFinalBlock(dataBytes, 0, dataBytes.Length));

и его мой код:

var key = "helloooooooooooooooooooooooooooo";
var str = "24000615;251985;1000" ;
var dataBytes = CryptoJS.enc.Utf8.parse(str);

var key = CryptoJS.enc.Base64.parse(key);

var encrypted = CryptoJS.DES.encrypt(dataBytes, key , {
 mode: CryptoJS.mode.ECB,
 padding: CryptoJS.pad.Pkcs7,
});
var enc = encrypted.ciphertext.toString(CryptoJS.enc.Base64);

в первом коде, если я устанавливаю переменные как показано ниже:

key = "hellooooooooooooooooooooooooooooo" и str = "24000615; 251985; 1000".

значение зашифрованного текста будет: enc = ORwbhqYfUAngc0KZf63XXO3NLToIHXXk

но в моем коде зашифрованное значение будет: enc = "inalvFtdhxelvdwnUxILMZhQwZahVsO4" которые не одинаковы. Я не знаю, почему это происходит.

...