【发布时间】:2011-01-27 02:21:07
【问题描述】:
我将跟踪可能有数百万个不同文件的不同版本,我的目的是对它们进行哈希处理以确定我已经看到了该文件的特定版本。目前,我只使用 MD5(该产品仍在开发中,因此它从未处理过数百万个文件),这显然不足以避免冲突。
但是,这是我的问题 - 如果我使用两种不同的方法对文件进行哈希处理并存储两个哈希值(例如,SHA1 和 MD5),或者如果我选择一个更长的哈希值(像 SHA256)并仅依靠它?我知道选项 1 有 288 个哈希位,而选项 2 只有 256 个,但假设我的两个选择的总哈希长度相同。
由于我可能要处理数百万个文件(以及随着时间的推移这些文件的多个版本),我想尽我所能避免冲突。但是,CPU 时间不是(完全)免费的,所以我对社区对这种权衡的看法很感兴趣——在我的哈希中添加更多位,计算成本会相应增加,并且多个不同的哈希是否有任何优势?在两个解决方案中给定相同数量的位的单个更长的哈希?
【问题讨论】: