Haval-256 (3 rounds) Hash

Technical details, regex signatures, and cracking commands for the Haval-256 (3 rounds) algorithm.

Regex Identification Signature:
^[a-f0-9]{64}(:.+)?$
Not supported natively by Hashcat
John the Ripper Command:
← Back to Hash Identifier

What is Haval-256 (3 rounds)?

The **Haval-256 (3 rounds)** algorithm is a member of the **HAVAL** family of cryptographic hash functions, designed by **Yuliang Zheng** in 1994 as an extension of the MD4/MD5 family to address their known vulnerabilities. Structurally, Haval-256 operates on a **256-bit block size** with a variable output length (128, 160, 192, 224, or 256 bits), where the "3 rounds" variant refers to its compression function’s reduced iteration count (compared to the standard 5-round version). Unlike SHA-1 or MD5, Haval was explicitly engineered to resist length-extension attacks and partial-key collisions, employing a **feistel network** with **modular addition, bitwise operations, and a custom S-box** for non-linearity. Its primary use-case was in early digital signatures, message authentication codes (MACs), and lightweight cryptographic protocols where computational efficiency was critical, though it never achieved widespread adoption due to its complexity and eventual obsolescence.

Haval-256 (3 rounds) is **vulnerable to cracking** primarily due to its **insufficient iteration depth**, which weakens collision resistance. With only **three compression rounds**, the algorithm’s internal state remains susceptible to **differential cryptanalysis**, where attackers exploit bit-level differences in input blocks to force collisions. Additionally, the **lack of a salt** in standard applications makes it prone to **rainbow table attacks** if used for password hashing. Modern hardware optimizations—such as **GPU/FPGA acceleration**—further exacerbate its weakness, as the lightweight design allows for **brute-force precomputation** of hash outputs at scale. Unlike modern hashes (e.g., SHA-3), Haval’s **fixed-round structure** lacks adaptive security, making it vulnerable to **length-extension attacks** when improperly concatenated with plaintext, and its **predictable compression function** enables **meet-in-the-middle attacks** on truncated outputs. These flaws render it **insecure for modern cryptographic applications**, particularly where collision resistance or resistance to preimage attacks is required.

Identifying Haval-256 (3 rounds) 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 Haval-256 (3 rounds), security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack Haval-256 (3 rounds)

If you need to recover the plaintext password for a Haval-256 (3 rounds) 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.