gpt4 book ai didi

c# - 将文本输入与 MySQL 中的散列值匹配

转载 作者:行者123 更新时间:2023-11-29 02:35:10 25 4
gpt4 key购买 nike

我有一个 winform c# 应用程序。它远程连接到 MySQL 并匹配存储在 MySQL 数据库表中的密码。密码使用 SHA1 存储。我已经存储了一个默认值:“mypassword”并使用 SHA1 对其进行了哈希处理。

当应用程序运行时,首先要求用户输入密码。为此,如果我使用下面提到的函数,那么与 MySQL SHA1 函数生成的哈希字符串相比,它会生成一个不同的哈希字符串。如何匹配值?请帮忙。

  public static string HashCode(string str)
{
string rethash = "";
try
{

System.Security.Cryptography.SHA1 hash = System.Security.Cryptography.SHA1.Create();
System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
byte[] combined = encoder.GetBytes(str);
hash.ComputeHash(combined);
rethash = Convert.ToBase64String(hash.Hash);
}
catch (Exception ex)
{
string strerr = "Error in HashCode : " + ex.Message;
}
return rethash;
}
}

我是这样调用它的:

 string hashedvalue =  HashCode("mypassword");
MessageBox.Show("The hashed value is : " + hashedvalue);

两者的哈希值是否不同?

最佳答案

来自 MySQL 的 SHA-1 哈希是一个十六进制编码的字符串,而 C# 给出了 Base64 编码的字符串,所以试试这个

rethash = BitConverter.ToString(hash.Hash).Replace("-", "");

关于c# - 将文本输入与 MySQL 中的散列值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401245/

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