【发布时间】:2020-06-21 12:07:45
【问题描述】:
我正在尝试将字符串转换为 md5 那就是我所做的:
public static string MD5Hash(string input)
{
StringBuilder hash = new StringBuilder();
MD5CryptoServiceProvider md5provider = new MD5CryptoServiceProvider();
byte[] bytes = md5provider.ComputeHash(new UTF8Encoding().GetBytes(input));
for (int i = 0; i < bytes.Length; i++)
{
hash.Append(bytes[i].ToString("x2"));
}
return hash.ToString();
}
当我在 MD5Hash("MyCode") 中测试时,上面的代码返回:6403df8223bf310152ad235731e79902 (32字符)
但我数据库上的 md5 是
0x6403DF8223BF310152AD235731E79902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> (000000000)
它缺少开头的 "0X" 和结尾的 "zeros"
【问题讨论】:
-
你从数据库中传递给这个函数的值是多少?
-
更改数据库>表格>列类型为 varchar(32)
-
@Amid 我不能,数据库已经填满了用户数据,我不能更改它,有些密码有 33 个字符
-
@ChetanRanpariya 值类型是二进制(64)
-
这个函数怎么会为
MyCode返回6403df8223bf310152ad235731e79902?