spk*_*ira 11 c# hash md5 large-files
我使用以下代码来计算文件的MD5SUM -
byte[] b = System.IO.File.ReadAllBytes(file);
string sum = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(b));
Run Code Online (Sandbox Code Playgroud)
这通常工作正常,但如果我遇到一个大文件(~1GB) - 例如ISO映像或DVD VOB文件 - 我得到一个Out of Memory异常.
虽然,我能够在cygwin中为大约10秒的同一文件计算MD5SUM.
请建议如何让我的程序中的大文件工作.
谢谢
Aln*_*tak 29
我建议使用替代方法:
MD5CryptoServiceProvider.ComputeHash(Stream)
Run Code Online (Sandbox Code Playgroud)
并传入一个在您的文件上打开的输入流.这种方法几乎肯定不会一次性读入内存中的整个文件.
我还要注意,在MD5的大多数实现中,可以一次将byte[]数据添加到摘要函数块中,然后在最后请求散列.
| 归档时间: |
|
| 查看次数: |
8278 次 |
| 最近记录: |