MD5 Hash在本地计算机上不同

时间:2013-05-14 15:07:47

标签: c# hash md5

我有一个像这样的MD5哈希方法:

MD5 md5 = System.Security.Cryptography.MD5.Create();
        StringBuilder sb = new StringBuilder();
        lock (md5)
        {
            byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
            byte[] hash = md5.ComputeHash(inputBytes);

            for (int i = 0; i < hash.Length; i++)
            {
                sb.Append(hash[i].ToString("X2").ToString(CultureInfo.InvariantCulture));
            }
        }
        return sb.ToString();

在使用相同输入的几台本地开发机器上,这将返回相同的哈希值。在登台和现场服务器上,它正在恢复预期值。

但是,在一些本地开发机器上,值不同。我无法弄清楚为什么?

我在这里添加了lockCultureInfo以回应其他一些答案..但是唉。没有。

在这件事上非常感谢任何和所有的帮助!

更新

我已经达到了将'good'与'bad'机器上的inputBytes数组进行比较并且数组相同的程度。

那么ComputeHash方法在机器之间可能有什么不同呢?我觉得这不是潜在的问题..但在这一点上,哈希回来的地方不同。我很茫然。

1 个答案:

答案 0 :(得分:1)

正如@bartdude所说,由于日期时间变量来自不同的系统时间格式,因此两台机器的输入都不同。

希望这有助于将来。