gpt4 book ai didi

.net - 为什么我的 .net 计算的 MD5 哈希值不等于在网站上计算的哈希值?

转载 作者:行者123 更新时间:2023-12-04 16:57:23 26 4
gpt4 key购买 nike

我正在尝试在 JavaScript 和 .Net 中生成等效的 MD5 哈希。也没有做,我决定使用第三方计算 - 这个 web site对于“密码”这个词。我稍后会添加盐,但目前,我无法让 .net 版本与网站的哈希匹配:

5f4dcc3b5aa765d61d8327deb882cf99

我猜这是一个编码问题,但我已经尝试了大约 8 种不同的方法来计算 .Net 中的 MD5 哈希,但没有一个与我在 JavaScript(或从网站)中获得的相匹配。此 MSDN example是我尝试过的方法之一,这导致了我通常收到的这个哈希:
7c6a180b36896a0a8c02787eeafb0e4c

编辑:可悲的是,我不小心为两个不同的实现提供了不同的源字符串。 EBSAK。 :-/仍然有兴趣听到您对后续行动的回答。

额外问题:哪种编码/格式最适合在数据库中存储散列值?

最佳答案

从您引用的 MSDN 站点运行代码:

 // Hash an input string and return the hash as
// a 32 character hexadecimal string.
static string getMd5Hash(string input)
{
// Create a new instance of the MD5CryptoServiceProvider object.
MD5 md5Hasher = MD5.Create();

// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder();

// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}

// Return the hexadecimal string.
return sBuilder.ToString();
}


static void Main(string[] args)
{
System.Console.WriteLine(getMd5Hash("password"));
}

返回:
5f4dcc3b5aa765d61d8327deb882cf99

关于.net - 为什么我的 .net 计算的 MD5 哈希值不等于在网站上计算的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/190198/

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