计算大文件Md5哈希值

本文关键字:哈希值 Md5 文件 计算 | 更新日期: 2023-09-27 18:13:55

我想让它非常清楚和简单。如果我有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))'

那你有什么建议?

计算大文件Md5哈希值

不是在将文件完全加载到内存后才计算该文件的哈希值,而是使用占用一个Stream的重载。

byte[] hash;
using (Stream input = File.OpenRead("Filename"))
{
    hash = MD5.Create().ComputeHash(input);
}