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
helloOutput0x248bfa47MurmurHash3 x86_32
Erreurs courantes
- Using MurmurHash for persistent keys (unstable across versions)
- Use a version-pinned hash or a cryptographic hash
Termes associés
FNV
FNV (Fowler-Noll-Vo) est un hachage non cryptographique simple, calculé rapidement par XOR et multiplication par un nombre premier, utilisé pour les tables de hachage et les empreintes. GLOSSAIRE
xxHash
xxHash est le hachage non cryptographique extrêmement rapide conçu par Yann Collet, approchant les limites de la bande passante mémoire sur les CPU modernes, utilisé avec la compression LZ4/Zstd. GLOSSAIRE
CRC32
CRC32 est un contrôle de redondance cyclique de 32 bits fondé sur la division polynomiale sur GF(2), utilisé pour détecter les erreurs de transmission — pas un hachage cryptographique. GLOSSAIRE