【发布时间】:2014-05-18 20:28:38
【问题描述】:
大家晚上好,
我一直在使用 C# 开发一个 MD5 工具,它接收一个文件,通过我的 Hasher 类并将结果连同文件名和目录一起弹出到数据库中。
我遇到的问题是,每次我运行测试时,相同文件的 MD5 结果,即以任何方式保持不变都是完全不同的。
下面是我使用的代码
HashAlgorithm hmacMd5 = new HMACMD5();
byte[] hash;
try
{
using (Stream fileStream = new FileStream(fileLocation, FileMode.Open))
{
using (Stream bufferedStream = new BufferedStream(fileStream, 5600000))
{
hash = hmacMd5.ComputeHash(bufferedStream);
foreach (byte x in hash)
{
md5Result += x;
}
}
}
}
catch (UnauthorizedAccessException uae) { }
return md5Result;
以下是 3 次单独运行 hello.mp2 的结果:
1401401571161052548110297623915056204169177
16724366215610475211823021169211793421
56154777074212779619017828183239971
相当令人费解。 关于为什么我得到这些结果,我唯一理性的想法是将字节连接到字符串。
谁能在这里发现问题?
问候,
瑞克
【问题讨论】: