【发布时间】:2012-04-14 04:00:08
【问题描述】:
我正在计算文件的 md5hash 以检查是否相同,所以我写了以下内容
private static byte[] GetMD5(string p)
{
FileStream fs = new FileStream(p, FileMode.Open);
HashAlgorithm alg = new HMACMD5();
byte[] hashValue = alg.ComputeHash(fs);
fs.Close();
return hashValue;
}
并测试一开始我是否像这样称呼它
var v1 = GetMD5("C:\\test.mp4");
var v2 = GetMD5("C:\\test.mp4");
我在调试器中列出了 v1 和 v2 值,它们是不同的!!这是为什么呢?
【问题讨论】:
-
是引用不同还是里面真的有不同的字节?
-
@CarstenKönig 它们的字节值不同......这 16 个字节是不同的
-
我们需要更多代码来确定原因。
-
是什么让你相信它们是不同的?你能告诉我们一些输出或调试器的屏幕截图吗?
-
谢谢...显然我使用了错误的哈希算法我尝试了 Darkshadw 链接,上面写着 MD5 md5 = new MD5CryptoServiceProvider() 并且它有效..感谢所有按下“按下”我的问题的人,我会删除它..