md5 - 组合 MD5 哈希值

标签 md5 algorithm checksum

在计算一个大文件的单个 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/

相关文章:

php - preg_replace url 与 md5 字符串

python - linux 和 python 中的 md5

algorithm - 从另一组中找到一组中的最远点

c++ - 这个校验和算法可以改进吗?

linux - 无法在 SUSE Linux 10.0 上构建 "cyrus-sasl-2.1.23"

java - 在 Java 中获取 FTP 文件的 MD5 校验和

javascript - 如何比较任意版本号?

algorithm - Hash表操作的时间复杂度是O(1)还是O(N)?

c++ - 异或数据包中的所有数据

java:需要提高校验和计算的性能