Преобразование ASP.NET/C# System.Security.Cryptography в node.js [закрыто]C#

Место общения программистов C#
Ответить
Гость
 Преобразование ASP.NET/C# System.Security.Cryptography в node.js [закрыто]

Сообщение Гость »


Я конвертирую проект ASP.NET/C# в серверную часть node.js, нужно переписать класс:

с использованием System.Web; использование System.Text; использование System.Security.Cryptography; пространство имен EnDeCript { открытый класс MySecurity { общедоступная статическая строка EncryptString (текстовая строка) { байт[] IV = новый байт[8] { 129, 17, 243, 57, 191, 83, 213, 3 }; string Key = "#%H__-_&^dEhwULs;'=+/:"; буфер byte[] = Encoding.UTF8.GetBytes(Text); TripleDESCryptoServiceProvider тройка = новый TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider md5 = новый MD5CryptoServiceProvider(); тройной.IV = IV; тройной.Key = md5.ComputeHash(ASCIIEncoding.UTF8.GetBytes(Key)); byte[] encodeText = тройной.CreateEncryptor().TransformFinalBlock(buffer, 0, buffer.Length); строка пользователя = Convert.ToBase64String(encodeText); вернуть пользователя; } общедоступная статическая строка DecryptString (строка EncryptText) { байт[] IV = новый байт[8] { 129, 17, 243, 57, 191, 83, 213, 3 }; string Key = "#%H__-_&^dEhwULs;'=+/:"; байт [] decodeText = ноль; пытаться { буфер byte[] = Convert.FromBase64String(EncryptText); TripleDESCryptoServiceProvider тройка = новый TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider md5 = новый MD5CryptoServiceProvider(); тройной.IV = IV; тройной.Key = md5.ComputeHash(ASCIIEncoding.UTF8.GetBytes(Key)); decodeText = тройной.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length); } ловить { вернуть Шифрованиетекста; } return Encoding.UTF8.GetString(decodeText); } } } У меня есть этот код, но он не возвращает одинаковый результат.

Буду рад, если вы поможете исправить код node.js для шифрования и расшифровки данных.

let Key = "#%H_-_&^dEhwULs;'=+/:"; const md5 = текст => { вернуть create_Hmac .createHash('md5') .update(Ключ) .дайджест(); } const encrypt = (текст) => { пусть secretKey = md5 (Ключ); console.log(secretKey.toString('base64')); secretKey = Buffer.concat([secretKey, secretKey.slice(0, 8)]); const cipher = create_Hmac.createCipheriv('des-ede3', secretKey, ''); const зашифровано = cipher.update(text, 'utf8', 'base64'); вернуть зашифрованное + cipher.final('base64'); }; const decrypt = (encryptedBase64) => { пусть secretKey = md5 (Ключ); secretKey = Buffer.concat([secretKey, secretKey.slice(0, 8)]); const decipher = create_Hmac.createDecipheriv('des-ede3', secretKey, ''); let decrypted = decipher.update(encryptedBase64, 'base64'); расшифровано += decipher.final(); возврат в расшифрованном виде; }; Правильный результат: vcZUN3A2vNMae6R6lgfqbQ==

Но я понимаю следующее: c8dhKldt7Fz+xhe+JABtFQ==

Используя этот класс, они шифровали и расшифровывали имена пользователей и пароли.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»