gpt4 book ai didi

c# - 在 C# 中生成 HMAC-SHA1

转载 作者:行者123 更新时间:2023-11-30 23:26:16 28 4
gpt4 key购买 nike

我正在尝试通过 C# 使用 REST API。

API 创建者提供了以下用于创建 hmac 的伪代码。

var key1 = sha1(body);
var key2 = key1 . SECRET_KEY;
var key3 = sha1(key2);
var signature = base64_encode(key3);

上述伪代码中,body为html请求体字符串,SECRET_KEY是 REST API 提供商提供的 key 。

据我所知,我需要使用 System.Security.Cryptography.HMACSHA1 类实现这个。

但我无法在 C# 中完全实现上述逻辑。

有什么建议吗?

最佳答案

上述代码到 C# 的直接映射类似于:

static string ComputeSignature(byte[] body, byte[] secret) {
using (var sha1 = SHA1.Create())
{
var key1 = sha1.ComputeHash(body);
var key2 = key1.Concat(secret).ToArray();
var key3 = sha1.ComputeHash(key2);
return Convert.ToBase64String(key3);
}
}

如果您将请求正文作为字符串,请使用适当的编码将其转换为字节数组,例如:

var body = Encoding.UTF8.GetBytes(bodyAsString);

如果您将 secret 作为字符串 - 这取决于 api 开发人员期望如何将其转换为字节数组。它很可能已经是 HEX 或 base64 编码的字符串。

关于c# - 在 C# 中生成 HMAC-SHA1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36931840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com