Tooleux

XXH3

XXHash (4)

Compute the modern XXH3 64-bit hash of any input.

Runs in your browser. Nothing leaves your device.
Calculate XXH3 (64-bit) non-cryptographic hashes. Free, offline, runs in your browser. Read more Show less

What is XXH3?

XXH3 is the third-generation xxHash algorithm, published by Yann Collet in 2019. It is significantly faster than both XXH32 and XXH64 on almost every input size, while distributing keys better. For new work that needs a fast, non-cryptographic hash, XXH3 is the recommended default.

XXH3 is not a cryptographic hash. It is designed for hash tables, cache keys, deduplication, fingerprinting, and load balancing. Never use it for passwords or signatures. Use SHA-256 or BLAKE3 for security.

How to compute XXH3

Type or paste your input and choose the encoding (UTF-8, hex, or Base64). For the UTF-8 string hello:

9555d6739cfc2f04

64-bit output

This tool produces the 64-bit XXH3 variant (XXH3-64), displayed as 16 hexadecimal characters. That is what almost every hash table, cache, and content-addressed store needs. If a format you are matching specifies a 128-bit XXH3, use a native library such as xxHash C, xxhash-rust, or js-xxhash.

FAQ

XXH3 vs XXH64

XXH3 is faster and better distributed. XXH64 remains useful only when an existing format specifies it. If you are choosing fresh, choose XXH3.

Does XXH3 take a seed?

The C library exposes a secret parameter for keyed hashing, but the JavaScript implementations (including hash-wasm) do not expose it. This tool therefore hashes without a seed, matching the unkeyed default.

XXH3 vs BLAKE3

Both are fast. BLAKE3 is cryptographically secure; XXH3 is not. If an attacker could benefit from predicting collisions, use BLAKE3. If you are indexing, use XXH3.

Is XXH3 stable across languages?

Yes. The algorithm is fully specified. Output matches xxHash C, hash-wasm, Go zeebo/xxh3, and Rust xxhash-rust.

Command line equivalent
# xxhsum
echo -n "hello" | xxhsum -H2            # XXH3-64

# Python
pip install xxhash
python3 -c 'import xxhash; print(xxhash.xxh3_64(b"hello").hexdigest())'

# Node (hash-wasm)
npm i hash-wasm
node --input-type=module -e 'import { xxhash3 } from "hash-wasm"; const b = new TextEncoder().encode("hello"); console.log((await xxhash3(b)).toString(16).padStart(16,"0"))'
Loads a test value into the form
Input
XXH3