【发布时间】:2012-01-18 10:04:24
【问题描述】:
我一直在搜索,但找不到任何关于它的信息。我想知道是否可以将文件的文件路径添加到MD5哈希码的计算中。
现在我的计算正常工作,它为所有不同的文件返回唯一的哈希码。但是如果我复制粘贴一个文件,它会返回相同的哈希码。
那么是否可以在计算中添加til文件路径?
BR
【问题讨论】:
我一直在搜索,但找不到任何关于它的信息。我想知道是否可以将文件的文件路径添加到MD5哈希码的计算中。
现在我的计算正常工作,它为所有不同的文件返回唯一的哈希码。但是如果我复制粘贴一个文件,它会返回相同的哈希码。
那么是否可以在计算中添加til文件路径?
BR
【问题讨论】:
MD5 哈希只是一种用于获取一些二进制数据并从中创建 128 位哈希值的算法。
如何确定要散列的二进制数据完全取决于您。如果这对您有用,那么(比如说)包含文件路径然后包含文件的内容(反之亦然)是完全合理的。通常不是,因为您通常想要验证您是否拥有与最初拥有的数据相同的数据,并且文件位置的元数据通常不是“有用”信息的一部分被检查。您通常想要复制/粘贴给您相同的哈希码。但如果你处于不同的情况,那也没关系。
【讨论】:
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();
}
【讨论】: