相同的文件不同的md5哈希值

时间:2018-06-12 04:29:08

标签: c# .net file hash

我有一个winforms应用程序,我可以选择上传.csv文件。我正在计算上传的.csv文件的文件哈希值。如果文件的内容已更改,则会显示一个消息框,指出文件的数据已更改。

我知道如何计算文件哈希值,但是如何存储同一文件的旧文件哈希值,然后将其与同一文件的新文件哈希值进行比较。

static bool FileHashesAreEqual(FileInfo fileName)
{
     byte[] firstHash = MD5.Create().ComputeHash(firstName.OpenRead());
     var oldFileHash = firstHash;

     for (int i = 0; i < oldFileHash.Length; i++)
     {
         // Unable to figure out how to compare newFileHash and the oldFileHash
         //if (oldFileHash[i] != newFileHash[i])
         return false;
     }

     return true;
 }

非常感谢任何有关如何做到这一点的帮助。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。感谢大家的想法和意见。

private bool FileHashesAreEqual(FileInfo fileName)
{
    byte[] firstHash = MD5.Create().ComputeHash(fileName.OpenRead());

    if (!this.fileHashDictionary.ContainsKey(fileName.Name))
    {
        this.fileHashDictionary.Add(fileName.Name, firstHash.ToString());
    }
    else
    {
        if (this.fileHashDictionary.TryGetValue(fileName.Name, out var value))
        {
            if (value != null)
            {
               for (var index = 0; index < value.Length; index++)
               {
                   if (value[index] != firstHash[index])
                   {
                       return false;
                   }
                }
             }
         }
    }

    return true;
}