Подобный код шифрования в JavaScript как в C # - PullRequest
0 голосов
/ 03 декабря 2018

Я использую некоторые удаленные API, они используют такой код C #:

SHA256Managed sha256Managed = new SHA256Managed();
byte[] passwordSaltBytes = Encoding.Unicode.GetBytes("zda");

byte[] hash = sha256Managed.ComputeHash(passwordSaltBytes);

string result = Convert.ToBase64String(hash);

Console.WriteLine("result = " + result); // result = NUbWRkT8QfzmDt/2kWaikNOZUXIDt7KKRghv0rTGIp4=

Мне нужно получить тот же результат в моем коде внешнего интерфейса javascript.Может кто-нибудь помочь с такой проблемой?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Не совсем очевидно, но Unicode в C # использует UTF-16LE, включая .

Так что вы можете использовать CryptoJS для достижения того же результата:

var utf16 = CryptoJS.enc.Utf16LE.parse("zda");
var hash = CryptoJS.SHA256(utf16);
var base64 = CryptoJS.enc.Base64.stringify(hash);
console.log(base64);
0 голосов
/ 04 декабря 2018

Ответ:

var utf8arr = CryptoJS.enc.Utf16LE.parse("zda");
var hash = CryptoJS.SHA256(utf8arr);
var base64 = CryptoJS.enc.Base64.stringify(hash);
console.log(base64);
...