FNV-164 Hash

Technical details, regex signatures, and cracking commands for the FNV-164 algorithm.

Regex Identification Signature:
^[a-f0-9]{16}$
Not supported natively by Hashcat
Not supported natively by John the Ripper
← Back to Hash Identifier

What is FNV-164?

The FNV-164 (Fowler–Noll–Vo) hash algorithm is a non-cryptographic hash function designed in 1991 by Glenn Fowler, Landon Curt Noll, and Mark Vo, with the primary goal of providing a fast, deterministic, and collision-resistant hash for general-purpose applications. Structurally, FNV-164 operates as a *rolling hash*, where the input data is processed byte-by-byte, with each byte incorporated into a 164-bit hash value through a multiplicative and XOR-based mixing process. The algorithm defines two key constants: a *prime offset basis* (FNV_offset_basis) and a *prime FNV_folding_prime*, both derived from large primes to minimize bias and maximize uniformity. Unlike cryptographic hashes, FNV-164 was not intended for security-sensitive operations but rather for hash tables, checksums, and data integrity verification in systems where speed and simplicity outweighed cryptographic guarantees. Its 164-bit output space (far larger than common 32/64-bit alternatives) reduces collision probabilities for large datasets, though its design prioritizes performance over collision resistance.

Despite its efficiency, FNV-164 suffers from fundamental vulnerabilities that render it unsuitable for cryptographic purposes. Its primary weakness lies in the *lack of avalanche effect*—a small change in input produces minimal variation in output, enabling brute-force or rainbow table attacks. The absence of a *salt* or *pepper* parameter makes it vulnerable to precomputed attacks, particularly when used for password storage or authentication. Additionally, its linear mixing operations (multiplication followed by XOR) are highly optimized for CPU/GPU parallelization, allowing attackers to compute hash collisions or reverse-engineer inputs at scale. Theoretical analyses also reveal that FNV-164’s structure predisposes it to *birthday attacks*, where collision probabilities become significant at ~2¹²⁸ operations, far below the theoretical 2¹⁶⁴ threshold due to implementation shortcuts. Finally, its deterministic nature eliminates entropy, making it susceptible to *dictionary attacks* when combined with predictable inputs, further compromising its integrity in security-critical scenarios.

Identifying FNV-164 Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify FNV-164, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack FNV-164

If you need to recover the plaintext password for a FNV-164 hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.