使用 C# 生成文本的 MD5 哈希值

发布于 2024-09-24 21:09:17 字数 529 浏览 3 评论 0原文

我了解 System.Security.Cryptography 在 MD5.ComputeHash。但是,该方法接受并返回字节。我不明白如何使用字符串键和哈希来使用此方法。我尝试通过这样做来解决问题,

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray()));
foreach(byte h in hash)
{
    Console.Write((char)h);
}

但是生成的输出是乱码。作为比较,在此网站中,输入“text”将得到“1cb251ec0d568de6a929b520c4aed8d1”

I understand that System.Security.Cryptography has a MD5 hashing method in MD5.ComputeHash. However, the method takes and returns bytes. I don't understand how to work with this method using String key and hashes. I try to work around by doing this,

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray()));
foreach(byte h in hash)
{
    Console.Write((char)h);
}

However the resulting output is gibberish string. For comparison, in this website, entering "text" will result in "1cb251ec0d568de6a929b520c4aed8d1"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

永言不败 2024-10-01 21:09:17

编写此代码将得到与网站相同的结果:

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray()));
foreach(byte h in hash)
{
     Console.Write(h.ToString("x2"));
}

技巧是将每个字节打印为 2 个十六进制数字(因此 x2)

writing this code will give the same result as the website:

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray()));
foreach(byte h in hash)
{
     Console.Write(h.ToString("x2"));
}

The trick is to print each byte as 2 hexadecimal digits (hence x2)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文