This online tool allows you to generate the hash xxh3 of any string.
XXH3 length is 16 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 XXH3?
XXH3 is the state-of-the-art hash algorithm in the xxHash family, designed for modern CPU architectures. It is a non-cryptographic hash function that significantly outperforms its predecessors (XXH32 and XXH64) by leveraging advanced instruction sets like SIMD (Single Instruction, Multiple Data) and sophisticated parallel processing. XXH3 is capable of producing both a 64-bit and a 128-bit hash output, providing a flexible solution for high-performance data processing, hash maps, and data integrity checks.
How does XXH3 hash works?
XXH3 is engineered to maximize throughput by minimizing stalls in the CPU pipeline:
- Initialization: It initializes a large internal state, allowing it to process multiple data blocks simultaneously.
- Vectored Processing (SIMD): Unlike XXH32/64 which process data using standard registers, XXH3 uses SIMD instructions (such as AVX2 or NEON). This allows the algorithm to perform math on multiple data elements in a single clock cycle.
- Parallel Accumulation: It maintains multiple accumulators that work in parallel. This approach effectively hides memory latency, as the CPU can compute parts of the hash while waiting for more data to be fetched from RAM.
- Finalization (Avalanche): After the data stream is processed, XXH3 applies a highly optimized "avalanche" mixing phase. This ensures that even the smallest bit change in the input cascades into a completely different 128-bit (or 64-bit) digest.
Differences: XXH3 vs. XXH32 and XXH64
- Throughput and Performance:
XXH3 is vastly superior: On modern CPUs, XXH3 is often 2 to 3 times faster than XXH64 and significantly faster than XXH32. It is designed to saturate the memory bandwidth of modern systems, whereas the older versions are often limited by the CPU's instruction execution speed.
Architecture Utilization:
- XXH32/64 are "Scalar": These use standard, sequential CPU instructions. They are highly portable but do not exploit the full power of modern "Vector" units found in current processors.
XXH3 is "Vectorized": It is built specifically to use SIMD instructions, making it the "native" choice for current-generation hardware (servers, cloud environments, and modern PCs).
Versatility:
XXH3 is unified: While you previously had to choose between XXH32 (32-bit) and XXH64 (64-bit) to get the desired output size, XXH3 provides both a 64-bit and a 128-bit output from the same high-performance core.
Collision Resistance:
- XXH3 (128-bit mode): Offers significantly better collision resistance than both XXH32 and XXH64, making it the preferred choice for massive datasets where even rare collisions are unacceptable.