gpt4 book ai didi

c# - md5-encrypted string 从数据库返回不同于插入

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:00 25 4
gpt4 key购买 nike

因此,我尝试检查密码是否匹配。

这是我使用的加密,一次当数据被插入数据库时​​,一次检查登录字段中插入的密码是否与数据库中的密码匹配:

 byte[] pass = Encoding.UTF8.GetBytes(password);
MD5 md5 = new MD5CryptoServiceProvider();
string newPass = Encoding.UTF8.GetString(md5.ComputeHash(pass));

但每次我尝试登录(使用正确的详细信息)时,它都不起作用。在调试器中,这是来自数据库的字符串:

?]??$PL??f??6?

以及从登录字段加密的那个:

�]��$PL��fඇ�6�

我想这是一个编码问题,但我自己似乎无法弄清楚。

最佳答案

这行不合适:

string newPass = Encoding.UTF8.GetString(md5.ComputeHash(pass));

ComputeHash 返回任意二进制数据。您应该将其保存为二进制数据,或者如果您确实需要将其转换为文本,请使用 Base64 以允许您稍后取回原始数据的方式进行转换:

string base64Hash = Convert.ToBase64String(md5.ComputeHash(pass));

您应该可以将其存储为普通字符串 - 它只是 ASCII。

(我个人不会使用 MD5 来散列密码,但那是另一回事。)

关于c# - md5-encrypted string 从数据库返回不同于插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389412/

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