MurmurHash
MurmurHash es un hash no criptográfico diseñado por Austin Appleby, que logra buena distribución y alta velocidad mediante operaciones de multiplicación y rotación.
Propósito
Proporciona un hash no criptográfico de bajas colisiones y alta velocidad para tablas hash.
Mecanismo
Cada bloque de 4 bytes se mezcla multiplicando por una constante, rotando y multiplicando de nuevo; los bytes restantes se procesan al final. Un finalizador (fmix32) aporta difusión adicional. MurmurHash3 admite salidas de 32/128 bits. No es criptográfico y tiene colisiones conocidas.
Casos de uso
- Tablas hash y filtros de Bloom
- Hasher predeterminado del HashMap de Rust
- Hash interno en bases de datos
- Sharding para balanceo de carga
Ejemplos
- entrada
helloOutput0x248bfa47MurmurHash3 x86_32
Errores comunes
- Using MurmurHash for persistent keys (unstable across versions)
- Use a version-pinned hash or a cryptographic hash
Términos relacionados
FNV
FNV (Fowler-Noll-Vo) es un hash no criptográfico simple que se calcula rápido mediante XOR y multiplicación por un primo, usado en tablas hash y huellas digitales. GLOSARIO
xxHash
xxHash es el hash no criptográfico extremadamente rápido diseñado por Yann Collet, que se acerca a los límites del ancho de banda de memoria en CPUs modernas, usado con la compresión LZ4/Zstd. GLOSARIO
CRC32
CRC32 es una comprobación de redundancia cíclica de 32 bits basada en la división de polinomios sobre GF(2), usada para detectar errores de transmisión; no es un hash criptográfico. GLOSARIO