gpt4 book ai didi

c# - C#计算大文件的MD5SUM

转载 作者:可可西里 更新时间:2023-11-01 08:33:48 25 4
gpt4 key购买 nike

我正在使用以下代码来计算文件的 MD5SUM -

byte[] b = System.IO.File.ReadAllBytes(file);
string sum = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(b));

这通常工作正常,但如果我遇到大文件 (~1GB) - 例如iso 镜像或 DVD VOB 文件 - 我遇到内存不足异常。

不过,我能够在大约 10 秒内在 cygwin 中计算同一个文件的 MD5SUM。

请建议我如何才能让它适用于我程序中的大文件。

谢谢

最佳答案

我建议使用替代方法:

MD5CryptoServiceProvider.ComputeHash(Stream)

然后传入在您的文件上打开的输入流。这种方法几乎肯定不会一次性读入内存中的整个文件。

我还要指出,在大多数 MD5 实现中,可以将 byte[] 数据一次一个 block 地添加到摘要函数中,然后在最后请求哈希。

关于c# - C#计算大文件的MD5SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/805730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com