Non-cryptographic
MurmurHash3
A family of fast non-cryptographic hash functions designed by Austin Appleby in 2008–2011. MurmurHash3 was the workhorse of mid-2010s big-data systems (Cassandra, Elasticsearch, Hadoop, Redis bitmap hashes); xxHash3 has largely supplanted it for raw throughput, but Murmur lives on for compatibility and clarity.
Variants
- MurmurHash3_x86_32 , 32-bit output, tuned for 32-bit CPUs.
- MurmurHash3_x86_128 , 128-bit output, 32-bit operations.
- MurmurHash3_x64_128 , 128-bit output, 64-bit operations.
At a glance
| Output | 32 or 128 bits |
|---|---|
| Throughput | ~3-7 GiB/s on modern CPUs |
| Construction | Block-by-block multiply / rotate / XOR mixer |
| Year | 2011 (Murmur3 final) |
| Status | Non-cryptographic; vulnerable to hash flooding without seed |
Where it is used
- Cassandra, Elasticsearch, ClickHouse , partitioning and Bloom-filter keys.
- Redis ,
BITCOUNTinternals and HyperLogLog. - Guava, Apache Commons , standard non-cryptographic hash.
- Bloom-filter implementations , double-hashing trick: two Murmur seeds give k independent hashes.
Hash flooding caveat
MurmurHash3 is reversible by an attacker who can submit chosen inputs with no seed protection. Servers that used Murmur in their HTTP-header hash tables suffered “hash-collision DoS” attacks throughout 2012–2013. The fix is to seed the hash randomly (as HashMap on the JVM does since Java 8) or switch to a hash with a security goal , see SipHash.
Try it
MurmurHash3 is not exposed in the in-browser hasher (hash-wasm focuses on cryptographic + checksum algorithms). The glossary covers the non-crypto distinction and the universal-hashing landscape.
References
- Austin Appleby , MurmurHash3 (SMHasher wiki)
- SMHasher fork , the canonical non-cryptographic-hash test bench
Quick quiz
Test yourself on murmurhash3
10 multiple-choice questions. Pick an answer for each, then submit to see explanations.
Q1.Who designed MurmurHash3?
Q2.Which is NOT a MurmurHash3 variant?
Q3.MurmurHash3 is:
Q4.Which big-data system uses MurmurHash3 for partitioning?
Q5.What attack motivated replacing Murmur in hash tables?
Q6.Which Murmur generation was the first widely-deployed family?
Q7.Where is MurmurHash3 still common today?
Q8.What's MurmurHash3's typical throughput on modern CPUs?
Q9.What test suite is used to benchmark MurmurHash3 against other non-crypto hashes?
Q10.Can you use MurmurHash3 for content addressing in an adversarial setting?