如何使用哈希来有效地跟踪文档的版本变化?

如何使用哈希来有效地跟踪文档的版本变化?

我听说开源软件使用这些。它们是根据整个文件计算的吗?比如如果你改变了《白鲸记》中的一个字母,哈希值就会不同?

我对这些用于跟踪 1k 到 1M 个字符之间的某些文件的变化感到很好奇。

从实际角度来说,计算 1k 和 1M 字符文件的哈希值分别需要多长时间?我应该担心这个问题吗?

答案1

看看这个: http://en.wikipedia.org/wiki/MD5#Applications

MD5 是第一个广泛流行的基于整个文件计算的哈希值。它存在一些严重的安全问题,这就是为什么它不再被广泛使用的原因。通过阅读有关 MD5 及其使用方法的文章,您将找到大多数(如果不是全部)后续问题的答案。

但简而言之,如果你对任何内容进行哈希处理A并应用一个好的哈希函数,你会得到一个二进制哈希值X. 对内容进行任何更改A,无论大小,都要生成内容A'. 内容的哈希值A'现在是一个新的哈希值X',每一位X'有 50% 的机会与X

当然,这意味着如果你使用 32 位哈希,在对A您仍有 2^-32 (0.000000023283%) 的概率获得完全相同的哈希值。这就是为什么哈希值通常长于 32 位。

相关内容