gpt4 book ai didi

c# - md5哈希混淆

转载 作者:行者123 更新时间:2023-11-30 19:30:11 25 4
gpt4 key购买 nike

我的公司在将密码存储到数据库之前使用以下算法对密码进行哈希处理:

    public static string Hash(string value)
{
byte[] valueBytes = new byte[value.Length * 2];

Encoder encoder = Encoding.Unicode.GetEncoder();
encoder.GetBytes(value.ToCharArray(), 0, value.Length, valueBytes, 0, true);

MD5 md5 = new MD5CryptoServiceProvider();
byte[] hashBytes = md5.ComputeHash(valueBytes);

StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < hashBytes.Length; i++)
{
stringBuilder.Append(hashBytes[i].ToString("x2"));
}

return stringBuilder.ToString();
}

对我来说,这听起来像是一个微不足道的 md5 哈希值,但是当我尝试匹配密码 (123456) 时,算法会给出 ce0bfd15059b68d67688884d7a3d3e8c,而当我使用标准的 md5 哈希值时,它会给出 e10adc3949ba59abbe56e057f20f883e。

网站的 iOS 版本正在 build 中,用户需要登录,密码将在发送前进行哈希处理。我告诉 iOS 团队使用标准的 md5 哈希,但当然没有成功。

我无法使用标准 md5(当然)取消密码哈希并再次对其进行哈希处理,而且我不知道要告诉 iOS 团队什么才能获得相同的哈希值。

有什么帮助吗?

最佳答案

您需要在两端使用相同的编码(可能是 UTF8)。

如果您将代码替换为

byte[] hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes("123456"));

,你会得到 e10adc3949ba59abbe56e057f20f883e

关于c# - md5哈希混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9792536/

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