Bob Jenkins · classic · non-cryptographic

Jenkins hash generator

Bob Jenkins' one-at-a-time hash — a classic, simple non-cryptographic hash function. Used in many older hash table implementations. Also includes Jenkins lookup3. Pure JavaScript.

0 chars
Jenkins hash
 

How to use this tool

  1. Type or paste text into the Input text box — the hash appears instantly in the Jenkins hash display.
  2. Pick an algorithm with the One-at-a-time or Lookup3 tabs above the input.
  3. The result is shown as 0x followed by eight uppercase hex digits — a 32-bit hash.
  4. Hit Copy to copy the full hash, including the 0x prefix, to your clipboard.
  5. Use Clear to empty the box and start over.

Why this tool is helpful

Check a hash-table implementation

One-at-a-time was a standard choice in many classic hash tables. Hash a test key and compare against the value your own code produces.

Verify a reference value

Confirm your Jenkins hash output matches the canonical result for a known string, so you can spot off-by-one or mixing bugs.

Fingerprint data cheaply

Non-cryptographic hashes are fast. Use them for deduplication, sharding, or quick equality checks — not for security.

Compare OAAT vs lookup3

Switch tabs to see how the two algorithms produce different 32-bit outputs for the same input and how their mixing differs.

Learn the algorithm

Follow the add, XOR, and bit-shift steps of one-at-a-time and the extra mixing rounds of lookup3 on real inputs.

Stay private

Everything runs in your browser. Nothing is uploaded, logged, or sent to a server.

FAQ

What is the Jenkins hash?

A family of non-cryptographic hash functions by Bob Jenkins. This tool implements the classic one-at-a-time hash and lookup3.

Is it cryptographically secure?

No. Jenkins hashes are fast and simple but not designed for security. Never use them for passwords, MACs, or anything adversarial — use SHA-256 or similar instead.

What do the two tabs do?

One-at-a-time runs Bob Jenkins' original OAAT hash. Lookup3 runs the lookup3 hash with its extra mixing rounds. Both produce a 32-bit value.

Why is the output always 0x + 8 hex digits?

Both algorithms return a 32-bit hash, and eight hex digits exactly represent 32 bits. The 0x prefix marks the value as hexadecimal.

What's the difference between one-at-a-time and lookup3?

One-at-a-time mixes each byte with simple add, XOR, and shifts — it's simple but has poor avalanche for short keys. Lookup3 adds several mixing rounds for better distribution.

Can I choose a seed?

This tool uses the default seed of 0 for lookup3; one-at-a-time takes no seed. If you need a custom seed, apply the same input transform in your own code.

Does any of my data leave my browser?

Never. All hashing happens locally in JavaScript. Your input is not sent to, stored on, or logged by any server.