为什么布隆过滤器需要多个散列函数?

时间:2011-07-07 06:22:58

标签: hash hash-function bloom-filter

我真的不明白为什么bloom过滤器需要多个哈希函数(比如SHA和MD5)。

例如,为什么不制作更大的 SHA哈希值,然后将其分解为多个部分并将它们视为单独的哈希值?在速度方面不是更有效吗?

2 个答案:

答案 0 :(得分:3)

这个想法是使用几个不同但简单的哈希函数。如果您要使用一些加密哈希函数,如SHA或MD5,那么您可以改变它的输入。它是否更有效取决于散列函数的复杂程度。

答案 1 :(得分:1)

它被称为三重/双重散列,它最大限度地减少了碰撞的机会,5个散列函数发生碰撞的概率比使用一个散列函数小5倍。