Aller au contenu
uencoder

MurmurHash

MurmurHash est un hachage non cryptographique conçu par Austin Appleby, qui atteint une bonne distribution et une grande vitesse grâce à des opérations de multiplication et de rotation.

Objectif

Fournit un hachage non cryptographique à faible collision et haute vitesse pour les tables de hachage.

Mécanisme

Chaque bloc de 4 octets est mélangé par multiplication par une constante, rotation, puis nouvelle multiplication ; les octets restants sont traités à la fin. Un finaliseur (fmix32) apporte une diffusion supplémentaire. MurmurHash3 prend en charge des sorties 32/128 bits. Non cryptographique, avec des collisions connues.

Cas d’usage

  • Tables de hachage et filtres de Bloom
  • Hacheur par défaut du HashMap de Rust
  • Hachage interne des bases de données
  • Sharding d'équilibrage de charge

Exemples

  • entrée
    hello
    Output
    0x248bfa47

    MurmurHash3 x86_32

Erreurs courantes

Using MurmurHash for persistent keys (unstable across versions)
Use a version-pinned hash or a cryptographic hash

Termes associés

Outils associés

References