gpt4 book ai didi

c# - C# 中字符串的 SHA256 哈希值与网站上的哈希值不一致

转载 作者:太空狗 更新时间:2023-10-29 21:01:25 27 4
gpt4 key购买 nike

如果我使用 SHA256 使用以下方法在 C# 中对字符串“password”进行哈希处理,我会得到它作为我的输出:

e201065d0554652615c320c00a1d5bc8edca469d72c2790e24152d0c1e2b6189

但是this website(SHA-256 produces a 256-bit (32-byte) hash value)告诉我有是:

5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

我显然遇到了数据格式问题或类似问题。任何想法为什么这个 C# SHA256Managed 方法返回不同的东西?我发送方法“密码”作为输入参数。

    private static string CalculateSHA256Hash(string text)
{
UnicodeEncoding UE = new UnicodeEncoding();
byte[] hashValue;
byte[] message = UE.GetBytes(text);

SHA256Managed hashString = new SHA256Managed();
string hex = "";

hashValue = hashString.ComputeHash(message);
foreach (byte x in hashValue)
{
hex += String.Format("{0:x2}", x);
}
return hex;
}

最佳答案

UnicodeEncoding是 UTF-16,保证将所有字符扩展到两到四个字节以表示它们的 Unicode 代码点(另请参阅 MSDN 上的备注部分)。

使用(静态)Encoding.UTF8相反,因此大多数字符将适合一个字节。这取决于您需要模仿哪个系统是否适用于所有字符串。

关于c# - C# 中字符串的 SHA256 哈希值与网站上的哈希值不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170035/

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