我想让它变得非常清楚和简单。如果我有 1gb 内存并且我想计算 2gb 文件的 md5 哈希值怎么办?目前,我正在这样做:
private static string Md5Hash(byte[] input)
{
byte[] hash = MD5.Create().ComputeHash(input);
StringBuilder builder = new StringBuilder(32);
foreach(byte b in hash)
{ builder.Append(b.ToString("X2")); }
return builder.ToString();
}
// I'm using it like: 'Md5.AsString(File.ReadAllBytes(filePath))'
那么你有什么建议呢?
与其在将文件完全加载到内存中后计算文件的哈希值,不如使用需要Stream
.
byte[] hash;
using (Stream input = File.OpenRead("Filename"))
{
hash = MD5.Create().ComputeHash(input);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)