添加MD5哈希计算的文件路径

时间:2012-01-18 10:04:24

标签: c# md5sum

我一直在搜索,但找不到任何相关信息。我不知道是否可以将文件的文件路径添加到MD5哈希码的计算中。

现在我正常计算工作,并且它为所有不同的文件返回唯一的哈希码。但是,如果我复制粘贴文件,它将返回相同的哈希码。

那么可以将til文件路径添加到计算中吗?

BR

2 个答案:

答案 0 :(得分:5)

MD5哈希只是一种算法,用于获取一些二进制数据,并从中创建一个128位哈希值。

如何确定要散列的二进制数据完全取决于您。如果对你有用,那么(比如说)包含文件路径然后包含文件内容(反之亦然)是完全合理的。通常它不是,因为您通常希望验证您拥有的数据与您最初的数据相同,并且文件位置的元数据通常不是 “有用”信息的一部分被检查。您通常想要复制/粘贴,以便为您提供相同的哈希码。但如果你处于不同的情况,那很好。

答案 1 :(得分:2)

MD5只是一个哈希,它完全取决于你的哈希值,所以如果你传递完整路径,它会将它添加到哈希值。

这是一些代码(它没有经过优化,但编写起来很容易理解),它会为传入的任何字符串返回MD5哈希值

public string MD5_Encrypt(string EncryptString)
{
  string strReturn = string.Empty;
  ASCIIEncoding ASCIenc = new System.Text.ASCIIEncoding();
  byte[] InputString = ASCIenc.GetBytes(EncryptString);
  System.Security.Cryptography.MD5CryptoServiceProvider MD5Hash = new System.Security.Cryptography.MD5CryptoServiceProvider();
  byte[] ByteHash = MD5Hash.ComputeHash(InputString);
  foreach (byte b in ByteHash)
  {
    strReturn += b.ToString("x2");
  }
  return strReturn.ToString();
}