Я хочу использовать REST API, который требует подписи, которая является хешем сообщения с использованием секретного ключа. У меня есть реализация JavaScript, которая работает, но когда я пытаюсь сделать то же самое в C #, он дает другой результат, который, согласно ответу API, кажется неправильным.
Код JavaScript, который производит желаемую подпись:
let signature = crypto.createHmac('sha256', secret_key).update(message).digest('hex');
Код C #, который не производит ту же самую желаемую подпись:
var hash = new HMACSHA256(key);
byte[] signature = hash.ComputeHash(message);
StringBuilder hexDigest = new StringBuilder();
foreach (byte b in signature)
hexDigest.Append(String.Format("{0:x2}", b).ToUpper());
Буду признателен, если кто-нибудь скажет мне, что мне нужно изменить в коде C #, чтобы воспроизвести тот же результат.