This online tool allows you to generate the hash murmur3c of any string.
MURMUR3C length is 32 characters
Hash available
MD2 Hash, MD4 Hash, MD5 Hash, SHA1 Hash, SHA224 Hash, SHA256 Hash, SHA384 Hash, SHA512/224 Hash, SHA512/256 Hash, SHA512 Hash, SHA3-224 Hash, SHA3-256 Hash, SHA3-384 Hash, SHA3-512 Hash, RIPEMD128 Hash, RIPEMD160 Hash, RIPEMD256 Hash, RIPEMD320 Hash, WHIRLPOOL Hash, TIGER128,3 Hash, TIGER160,3 Hash, TIGER192,3 Hash, TIGER128,4 Hash, TIGER160,4 Hash, TIGER192,4 Hash, SNEFRU Hash, SNEFRU256 Hash, GOST Hash, GOST-CRYPTO Hash, ADLER32 Hash, CRC32 Hash, CRC32B Hash, CRC32C Hash, FNV132 Hash, FNV1A32 Hash, FNV164 Hash, FNV1A64 Hash, JOAAT Hash, MURMUR3A Hash, MURMUR3C Hash, MURMUR3F Hash, XXH32 Hash, XXH64 Hash, XXH3 Hash, XXH128 Hash, HAVAL128,3 Hash, HAVAL160,3 Hash, HAVAL192,3 Hash, HAVAL224,3 Hash, HAVAL256,3 Hash, HAVAL128,4 Hash, HAVAL160,4 Hash, HAVAL192,4 Hash, HAVAL224,4 Hash, HAVAL256,4 Hash, HAVAL128,5 Hash, HAVAL160,5 Hash, HAVAL192,5 Hash, HAVAL224,5 Hash, HAVAL256,5 Hash,
What is Murmur3C?
Murmur3C is the 128-bit version of the MurmurHash3 algorithm. While Murmur3A is designed for 32-bit hash values, Murmur3C produces a 128-bit digest. It is specifically engineered to handle larger data sets and provide a significantly larger hash space, which is essential for applications where the probability of collisions must be kept extremely low, even when dealing with billions of keys. Like its 32-bit counterpart, it is a non-cryptographic hash function optimized for high-performance hash tables.
How does Murmur3C hash works?
Murmur3C scales the mixing logic of the MurmurHash3 family to accommodate larger internal states:
- Initialization: It uses a 32-bit seed, which is then expanded into the 128-bit internal state.
- 128-bit Processing: The input data is processed in 16-byte (128-bit) blocks. It uses a combination of 64-bit multiplications, bit rotations, and XOR operations to mix the data.
- State Management: It maintains four 32-bit registers (totaling 128 bits) that are updated independently as data is consumed.
- Finalization: The finalization step performs a series of "avalanche" operations (mixing the bits thoroughly) across the entire 128-bit state to ensure that every input bit affects every output bit.
Difference between Murmur3C and Murmur3A
The primary distinction between the two variants lies in the bit-width and the intended use case:
- Hash Space: Murmur3C provides a 128-bit hash (allowing for $2^{128}$ possible values), whereas Murmur3A provides a 32-bit hash ($2^{32}$ values). Murmur3C is virtually immune to collisions for most standard application datasets.
- Performance: Murmur3A is slightly faster and consumes less memory because it operates on 32-bit registers. Murmur3C requires 64-bit arithmetic to process 128-bit blocks, making it slightly more computationally intensive.
- Use Case: Murmur3A is ideal for standard, high-speed hash maps where 32 bits of entropy are sufficient. Murmur3C is the preferred choice for large-scale distributed systems, database indexing, and scenarios where data integrity and collision prevention are paramount.