计算大文件的Md5哈希

PilawyerDev

我想使其变得非常清晰和简单。如果我有1GB的ram并试图计算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);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章