MD5哈希值在本地机器上不一致

本文关键字:机器 不一致 哈希值 MD5 | 更新日期: 2023-09-27 18:13:24

我有一个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来回应这里的其他一些答案。但是唉。什么都没有。

在这件事上,任何帮助都是非常感激的!

更新:

我已经到了比较"好"answers"坏"机器上的inputBytes数组的地步,数组是相同的。

那么,如果有的话,ComputeHash方法在不同的机器之间会有什么不同呢?我觉得这不是根本问题。但在这一点上,哈希值是不同的。

MD5哈希值在本地机器上不一致

正如@bartdude所说,由于datetime变量从不同的系统时间格式提取,因此两台机器上的输入是不同的。