非加密散列函数,其关于级联是同态的



Adler32和CRC具有f(a || b)可以从f(a)f(b)len(b)廉价计算的特性。是否有其他具有此属性的常见非加密哈希函数?

上下文(为了避免XY问题(是,我通过将字符串拆分为块来消除重复,这些块通过它们的哈希进行索引。然后,输入字符串可以表示为一系列的块,连接在一起。我想使用一个散列函数,这样字符串的所有表示都有相同的散列,可以直接从块散列中计算,而不需要底层数据,因为它以未指定的顺序进行流式传输,因此在任何时候都可能不在同一个地方可用。

我的设计需要大约2^32块。碰撞是非常昂贵的,但不会损害正确性。基于此,我认为CRC64会起作用,但我很好奇我的替代方案是什么。我不介意使用128位散列进行未来验证(如:数据集大小可能会增长(。

您的23264位CRC的所有对之间发生一次碰撞的概率约为1/2。如果这对您来说太高,您可以使用128位CRC。这将一次碰撞的概率降低到3x10-20

相关内容

  • 没有找到相关文章

最新更新