大家早上好
我正在使用 C# 开发 MD5 文件完整性检查工具。
文件需要多长时间才能获得 MD5 校验和值? 例如,如果我尝试获取一个 2gb 的 .mpg 文件,每次大约需要 5 分钟以上。 这似乎太长了。
我是不是不耐烦了?
下面是我运行的代码
public string getHash(String @fileLocation)
{
FileStream fs = new FileStream(@fileLocation, FileMode.Open);
HashAlgorithm alg = new HMACMD5();
byte[] hashValue = alg.ComputeHash(fs);
string md5Result = "";
foreach (byte x in hashValue)
{
md5Result += x;
}
fs.Close();
return md5Result;
}
如有任何建议,我们将不胜感激。
问候
最佳答案
参见 this关于如何以最有效的方式计算文件哈希值。您基本上必须将 FileStream
包装到 BufferedStream
中,然后将其提供给 HMACMD5.ComputeHash(Stream)
重载:
HashAlgorithm hmacMd5 = new HMACMD5();
byte[] hash;
using(Stream fileStream = new FileStream(fileLocation, FileMode.Open))
using(Stream bufferedStream = new BufferedStream(fileStream, 1200000))
hash = hmacMd5.ComputeHash(bufferedStream);
关于c# - MD5文件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345851/