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.