0
4

1 回答 1

1

我建议先使用adler32,然后crc32。可能有许多非常短的文件具有相同adler32的 ',但不同crc32的 '。实际上,您可以考虑crc32在第一次通过时对低于特定大小的文件使用单个步骤。该大小可能约为1K。对于较长的文件,adler32crc32有接近相同的碰撞概率。

根据您拥有的文件数量,您可以考虑使用更大散列的后续步骤,例如md5sha1。有关32 位校验值的预期冲突的概率和计数,请参阅此答案。粗略地说,如果您有数百万个文件,那么这一步可能值得做。

使用更长的散列值不会有任何好处。来自 md5 的 128 位足以区分世界上每台计算机上的所有文件。

于 2013-09-29T15:14:55.333 回答