我听说开源软件使用这些。它们是根据整个文件计算的吗?比如如果你改变了《白鲸记》中的一个字母,哈希值就会不同?
我对这些用于跟踪 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 位。