Hashing

MurmurHash3 Calculator

MurmurHash3 (32-bit) is a fast non-cryptographic hash built from two stages: each 4-byte block is mixed into an accumulator h1 , then a finalizer avalanches the result so one changed bit rewrites half the output. Used for hash tables and bloom filters . The seed picks an independent hash function — test with seed 0 gives 0xBA6BD213 .

Input0 bytes · 0 blocks + 0 tail
encoded as UTF-8
Try
Seeddecimal or 0x-prefixed hex, 32-bit
= 0 / 0x00000000
MurmurHash3 · 32-bit
0x00000000
0 unsigned · 0 signed
00000000
00
00000000
00
00000000
00
00000000
00
Representationsclick copy to take a value away
Hex
0x00000000
Decimal (unsigned)
0
Signed int32
0
Binary
00000000000000000000000000000000

Implementations disagree on signedness, not on the bits — Java's murmur3_32 returns the signed reading of the same 32 bits.

Bytes
0
UTF-8 encoded
4-byte blocks
0
fully mixed rounds
Tail bytes
0
exact multiple of 4
Seed
0x00000000
0
Mixing trace7 steps
StageBytesk1h1
seed0x00000000
^= len (0)0x00000000
^= h1 >>> 160x00000000
*= 0x85EBCA6B0x00000000
^= h1 >>> 130x00000000
*= 0xC2B2AE350x00000000
^= h1 >>> 160x00000000

Each block mixes k1 (×c1, rotl 15, ×c2), XORs it into h1, then rotates and scrambles h1. The tail skips that rotation, and the six finalization steps run once at the end — that last group is what turns a near-collision into an unrelated number.

Constantsthe magic numbers in the trace
NameValueUsed for
c10xCC9E2D51first k1 multiply
rotl 1515k1 rotate, between the multiplies
c20x1B873593second k1 multiply
rotl 1313h1 rotate, after each block
m, n5, 0xE6546B64h1 = h1 × m + n, per block
fmix c10x85EBCA6Bfirst finalization multiply
fmix c20xC2B2AE35second finalization multiply
no input

That is the real hash of an empty message — with seed 0 it is exactly 0x00000000, because the finalizer has nothing but zeros to avalanche. Type something to fill the trace.

not cryptographic

MurmurHash3 is built for speed and distribution, not for security. It is not collision-resistant against an attacker who picks the input — never use it for passwords, signatures, or integrity checks.

Share

marduc812

© 202620260812_d5568b8