在大文件上计算单个MD5校验和时,通常使用哪种技术将各种MD5值组合为单个值?您是否将它们加在一起?我对执行此操作的任何特定语言,库或API都不感兴趣;我只是对它背后的技术感兴趣。有人可以解释如何完成吗?
在伪代码中给出以下算法:
MD5Digest X for each file segment F MD5Digest Y = CalculateMD5(F) Combine(X,Y)
但是究竟会Combine做什么呢?它将两个MD5摘要加在一起吗?
Combine
为了计算太大而无法容纳在内存中的文件的MD5值
考虑到这一点,您不想“组合”两个MD5哈希值。使用 任何 MD5实施,您都有一个对象保持当前校验和状态。因此,您可以随时提取MD5校验和,这在对共享同一开始的两个文件进行哈希处理时非常方便。对于大文件,您只需继续输入数据- 如果一次或成块地对文件进行哈希处理就没有区别,因为会记住状态。在两种情况下,您将获得相同的哈希值。