Zum Inhalt springen
uencoder

MurmurHash

MurmurHash ist eine nicht kryptografische Hashfunktion von Austin Appleby, die durch Multiplizieren und Rotieren gute Verteilung und hohe Geschwindigkeit erreicht.

Zweck

Liefert einen kollisionsarmen, schnellen nicht kryptografischen Hash für Hashtabellen.

Mechanismus

Jeder 4-Byte-Block wird durch Multiplikation mit einer Konstante, Rotation und erneute Multiplikation gemischt; Restbytes werden am Ende verarbeitet. Ein Finalizer (fmix32) sorgt für weitere Diffusion. MurmurHash3 unterstützt 32/128-Bit-Ausgaben. Nicht kryptografisch, mit bekannten Kollisionen.

Anwendungsfälle

  • Hashtabellen und Bloom-Filter
  • Standard-Hasher der Rust-HashMap
  • Internes Hashing in Datenbanken
  • Sharding für Lastverteilung

Beispiele

  • Eingabe
    hello
    Output
    0x248bfa47

    MurmurHash3 x86_32

Häufige Fehler

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

Verwandte Begriffe

Verwandte Tools

References