问问题
239 次
1 回答
1
我建议先使用adler32
,然后crc32
。可能有许多非常短的文件具有相同adler32
的 ',但不同crc32
的 '。实际上,您可以考虑crc32
在第一次通过时对低于特定大小的文件使用单个步骤。该大小可能约为1K。对于较长的文件,adler32
将crc32
有接近相同的碰撞概率。
根据您拥有的文件数量,您可以考虑使用更大散列的后续步骤,例如md5
或sha1
。有关32 位校验值的预期冲突的概率和计数,请参阅此答案。粗略地说,如果您有数百万个文件,那么这一步可能值得做。
使用更长的散列值不会有任何好处。来自 md5 的 128 位足以区分世界上每台计算机上的所有文件。
于 2013-09-29T15:14:55.333 回答