0

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

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

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

BR

4

2 回答 2

5

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

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

于 2012-01-18T10:06:23.593 回答
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();
}
于 2012-01-18T10:14:34.943 回答