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();
在使用相同输入的几个本地开发机器上,这返回相同的哈希值。在登台服务器和活动服务器上,它也会返回预期的值。
然而,在一些本地开发机器上,这些值是不同的。我不知道为什么?
我添加了lock
和CultureInfo
来回应这里的其他一些答案。但是唉。什么都没有。
更新:
我已经到了比较"好"answers"坏"机器上的inputBytes数组的地步,数组是相同的。
那么,如果有的话,ComputeHash方法在不同的机器之间会有什么不同呢?我觉得这不是根本问题。但在这一点上,哈希值是不同的。
正如@bartdude所说,由于datetime变量从不同的系统时间格式提取,因此两台机器上的输入是不同的。