xxHash64 Hash Calculator
// instant hashing — no data leaves your browser
Text Hash
File Hash
Random Hashs
Frequently Asked Questions
What is xxHash?
xxHash is a family of extremely fast non-cryptographic hash functions created by Yann Collet — also the author of the Zstandard compression algorithm. It is designed to hash data at near-memory-bandwidth speeds, making it suitable for hash tables, data deduplication, cache keying, and non-adversarial file integrity checks. All four variants — xxHash32, xxHash64, xxHash3, and xxHash128 — are deterministic and produce consistent checksums across platforms.
Is xxHash cryptographically secure?
No. xxHash is explicitly not a cryptographic hash function. It provides no pre-image resistance and no collision resistance against adversarial inputs — an attacker with knowledge of the algorithm can craft inputs that produce any desired output. For any use case where data integrity must hold against a malicious party (digital signatures, MACs, certificate fingerprints, content-addressable storage exposed to untrusted input), use a cryptographic hash function such as SHA-256 or BLAKE3. For passwords specifically, use bcrypt, scrypt, or Argon2.
What is xxHash actually used for?
xxHash is widely used in databases, build systems, data pipelines, and compression tools where throughput matters and inputs come from trusted sources. Notable adopters include RocksDB, ClickHouse, DuckDB, Buck2, and Zstandard. It also appears in file sync tools, content-addressed caches, and embedded systems where the cost of a cryptographic hash is too high.
How does xxHash.dev ensure privacy?
All hashing runs entirely inside your browser using hash-wasm by Daninet — a WebAssembly library that computes xxHash digests locally without any network calls. No text, no file content, and no hash output is ever transmitted to any server. You can verify this by running the tool while offline — it works identically.
What is xxHash64?
xxHash64 is the original 64-bit member of the xxHash family, released alongside xxHash32 in 2012. It produces a 64-bit (8-byte) digest represented as a 16-character hex string. Designed for 64-bit platforms, xxHash64 processes data in 32-byte blocks and achieves throughput that approaches main-memory bandwidth on modern hardware — typically several times faster than CRC32 and orders of magnitude faster than any cryptographic hash.
Where is xxHash64 used?
xxHash64 is the most widely deployed xxHash variant in production systems. It is used internally by RocksDB for SST file checksums, ClickHouse and DuckDB for data block integrity, Zstandard for frame checksums, and Buck2 for action cache keying. Its combination of speed, 64-bit collision resistance, and long track record makes it the practical default for non-cryptographic checksumming.
xxHash64 vs xxHash3 — which should I use?
Both produce 64-bit digests, but they differ in architecture and performance profile. xxHash3 (released 2019) is optimised for SIMD instruction sets (AVX2, SSE2, NEON) and outperforms xxHash64 on most modern CPUs, particularly for small inputs under 128 bytes. xxHash64 performs better on older hardware without SIMD support and has a longer deployment history with broader library support. For new projects where xxHash3 is available, xxHash3 is generally the better choice. For compatibility with existing systems already using xxHash64, there is no practical reason to migrate — the speed difference is rarely the bottleneck.
Can xxHash64 collide?
Like any 64-bit hash, xxHash64 has a birthday-bound collision probability: for a uniformly random set of inputs, you can expect the first collision after roughly 232 (about 4 billion) distinct values. This is acceptable for most in-process hash tables and checksums. If collision probability at that scale is a concern — for example in a long-lived persistent store with billions of distinct keys — consider using xxHash128, which raises the birthday bound to approximately 264 distinct values.
The xxHash family
xxHash has two generations. The first generation (2012) comprises xxHash32 and xxHash64 — portable, branch-heavy algorithms that run well on all hardware. The second generation (2019) comprises xxHash3 and xxHash128, both built on the same SIMD-friendly core and capable of exploiting AVX2, SSE2, or NEON instructions when available. All four variants are non-cryptographic and deterministic. None should be used where collision resistance against adversarial inputs is required.
Variant comparison
| Algorithm | Digest | Generation | SIMD | Status | Common use |
|---|---|---|---|---|---|
| XXH32 | 32 bit · 8 hex | 1st gen (2012) | No | Stable | 32-bit platforms, embedded systems, legacy tooling |
| XXH64 | 64 bit · 16 hex | 1st gen (2012) | No | Stable | Databases, build systems, file integrity, general-purpose checksums |
| XXH3 | 64 bit · 16 hex | 2nd gen (2019) | Yes | Recommended | New projects on modern hardware, small-input hashing, hash tables |
| XXH128 | 128 bit · 32 hex | 2nd gen (2019) | Yes | Stable | Content-addressed storage, deduplication at scale, lower collision probability |
Which variant should I use?
For new projects on modern hardware, xxHash3 is the recommended choice — it is faster than xxHash64, especially for short inputs, and benefits from SIMD acceleration. Use xxHash64 when integrating with existing systems that already depend on it, or when targeting older hardware without SIMD support. Choose xxHash128 when a wider 128-bit digest is needed to reduce birthday-bound collision probability at very large scales. Use xxHash32 only if you are constrained to a 32-bit platform or need compatibility with legacy tooling that cannot accept a wider digest.