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
helloOutput0x248bfa47MurmurHash3 x86_32
Häufige Fehler
- Using MurmurHash for persistent keys (unstable across versions)
- Use a version-pinned hash or a cryptographic hash
Verwandte Begriffe
FNV
FNV (Fowler-Noll-Vo) ist ein einfacher, nicht-kryptografischer Hash, der per XOR und Multiplikation mit einer Primzahl schnell berechnet wird; genutzt für Hash-Tabellen und Fingerabdrücke. GLOSSAR
xxHash
xxHash ist der extrem schnelle, nichtkryptografische Hash von Yann Collet, der auf modernen CPUs an Speicherbandbreitengrenzen heranreicht und mit LZ4/Zstd-Kompression eingesetzt wird. GLOSSAR
CRC32
CRC32 ist eine 32-Bit-Cyclic-Redundancy-Check-Prüfung auf Basis der Polynomdivision über GF(2), die Übertragungsfehler erkennt — kein kryptografischer Hash. GLOSSAR