在计算一个大文件的单个 MD5 校验和时,通常使用什么技术将各种 MD5 值组合成一个值?你只是把它们加在一起吗?我对能做到这一点的任何特定语言、库或 API 都不感兴趣;相反,我只对它背后的技术感兴趣。谁能解释一下这是怎么做到的?
给定以下伪代码算法:
MD5Digest X
for each file segment F
MD5Digest Y = CalculateMD5(F)
Combine(X,Y)
但是 Combine
究竟会做什么呢?它是将两个 MD5 摘要加在一起,还是什么?
最佳答案
In order to calculate MD5 values for files which are too large to fit in memory
考虑到这一点,您不想“组合”两个 MD5 哈希值。使用任何 MD5 实现,您都有一个保持当前校验和状态的对象。因此您可以随时提取 MD5 校验和,这在对共享相同开头的两个文件进行哈希处理时非常方便。对于大文件,您只需不断输入数据——如果您一次性或分块散列文件,都没有区别,因为状态会被记住。在这两种情况下,您将获得相同的哈希值。
关于md5 - 组合 MD5 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2214259/