Saltar al contenido
uencoder

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
    hello
    Output
    0x248bfa47

    MurmurHash3 x86_32

Errores comunes

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

Términos relacionados

Herramientas relacionadas

References