gpt4 book ai didi

c# - 使用两个参数对 "SHA256"进行哈希处理

转载 作者:行者123 更新时间:2023-12-02 06:56:11 31 4
gpt4 key购买 nike

我必须转换一个对字符串进行哈希处理的 JAVA 函数。

这是一个函数:

private static String hmacSha256(String value, String key) throws NoSuchAlgorithmException, InvalidKeyException {
byte[] keyBytes = key.getBytes();
SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(value.getBytes());
return String.format("%0" + (rawHmac.length << 1) + "x", new BigInteger(1, rawHmac));
}

我的疑问是:这个函数有两个参数:

  1. 字符串值:要加密的字符串
  2. 字符串键:这是另一个键

我已经使用了 Sha256,但我总是只使用一个参数(一个要加密的字符串)

请问我如何用 C# 编写这个函数,或者有谁可以向我解释一下逻辑吗?

谢谢

最佳答案

您可以使用HMACSHA256类使其工作:

    private static string ComputeHash(string key, string value)
{
var byteKey = Encoding.UTF8.GetBytes(key);
string hashString;

using (var hmac = new HMACSHA256(byteKey))
{
var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(value));
hashString = Convert.ToBase64String(hash);
}

return hashString;
}

关于c# - 使用两个参数对 "SHA256"进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315528/

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