Преобразование дайджеста + кода узла hmacsha256 в c # - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь воссоздать этот код nodejs для c #. Однако результаты не соответствуют ожидаемому значению. Я думаю, потому что мне нужно реализовать функцию дайджеста, как в nodejs. Но я не знаю, как на самом деле работает дайджест

==========================================

Вот фрагмент кода из nodejs:

var shaBody = crypto.createHmac('SHA256', base64Key)
    .update(message);

var digestBody = shaBody.digest('base64');
console.log('Base64 Digest HMACSHA256 message: '+ digestBody);

==========================================

Вот код c #:

byte[] secretkey = new Byte[64];
ASCIIEncoding encoding = new ASCIIEncoding();
string base64String = Convert.ToBase64String(encoding.GetBytes(authKey));
secretkey = Convert.FromBase64String(base64String);

byte[] requestBody = new Byte[64];
requestBody = 
Convert.FromBase64String(Convert.ToBase64String(encoding.GetBytes(body)));

using (HMACSHA256 hmac = new HMACSHA256(secretkey))
{
    byte[] hashValue = hmac.ComputeHash(requestBody);
    var hex = BitConverter.ToString(hashValue).Replace("-", 
"").ToLower();
    string requestSignatureBase64String = 
Convert.ToBase64String(hashValue);

    Console.WriteLine(base64String);
    Console.WriteLine(hex);
    Console.WriteLine(requestSignatureBase64String);
}
...