【发布时间】:2019-01-14 00:24:18
【问题描述】:
我想使用需要签名的 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# 代码中更改什么以重现相同的结果,我将不胜感激。
【问题讨论】:
标签: javascript c# sha256 hmac