2011-07-07 4 views
1

Je ne comprends pas vraiment pourquoi un filtre de bloom nécessite plusieurs fonctions de hachage (par exemple, SHA et MD5).Pourquoi un filtre Bloom a-t-il besoin de plusieurs fonctions de hachage?

Pourquoi ne pas simplement faire un plus grand SHA, par exemple, puis le diviser en plusieurs parties et les traiter comme des hachages distincts? N'est-ce pas plus efficace en termes de vitesse?

+2

Selon [wikipedia] (http://en.wikipedia.org/wiki/Bloom_filter), cela se fait parfois: * Pour une bonne fonction de hachage ... ce type de hachage peut être utilisé pour générer plusieurs "différents" "Hash fonctions en découpant sa sortie en plusieurs champs de bits * –

+0

@Damien: Je n'ai jamais vu ça, merci beaucoup. Si vous postez comme une réponse, je vais le +1. :) – Mehrdad

Répondre

3

L'idée est d'utiliser plusieurs fonctions de hachage différentes mais simples. Si vous utilisez une fonction de hachage cryptographique comme SHA ou MD5, vous pouvez simplement modifier l'entrée. Que ce soit plus efficace dépend de la complexité de vos fonctions de hachage.

1

C'est ce qu'on appelle le hachage triple/double, il minimise le risque de collisions, la probabilité de collision avec 5 fonctions de hachage, est 5 fois plus petit qu'avec une fonction de hachage.

Questions connexes