【发布时间】:2011-08-27 19:41:45
【问题描述】:
我有一个以自定义文件格式存储的大型数据集 (~1GB),其中最后 16 个字节是文件所有先前字节的 MD5 哈希。
我想使用 HashAlgorithm.ComputeHash(Stream) 对照嵌入式 MD5 验证此文件的 MD5,但是这将计算整个文件的哈希值,包括最后 16 字节的哈希值,这显然不起作用。
如何计算流的 PART 的 MD5 哈希?我知道我可以将流读入一个数组并将其传递给 HashAlgorithm.ComputeHash(Bytes),但是在内存中复制这 1GB 数据的开销是令人望而却步的。
【问题讨论】:
-
请注意 MD5 不再是一种安全的哈希算法
-
我使用它只是为了验证文件在磁盘或内存中没有损坏,所以这不是问题。