Haval-160 (3 rounds) Hash

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

Regex Identification Signature:
^[a-f0-9]{40}(:.+)?$
Hashcat Command (Mode: 6000):
John the Ripper Command:
← Back to Hash Identifier

What is Haval-160 (3 rounds)?

The **Haval-160 (3 rounds)** algorithm is a member of the **HAVAL** family of cryptographic hash functions, designed by **Yuliang Zheng** and **Xuejia Lai** in 1994 as an extension of the MD4/MD5 family. Structurally, it operates on a **160-bit output** (hence the "160" designation) and employs a **variable-round design**, with the "3 rounds" variant using only three compression rounds per message block, unlike the full 5-round variant. The algorithm follows a **mercurial hash structure**, where an initial **IV (initialization vector)** is XORed with the previous hash state before processing each 512-bit block via a series of **non-linear Feistel networks**, incorporating bitwise operations (AND, OR, XOR), modular additions, and bit rotations. Its primary use-case was as a **general-purpose cryptographic hash**, particularly in applications requiring a stronger security margin than MD5 but without the computational overhead of SHA-1 at the time of its introduction. However, its adoption was limited by emerging vulnerabilities and the eventual obsolescence of 160-bit security in modern cryptographic standards.

Haval-160 (3 rounds) suffers from **critical cryptographic weaknesses** stemming from its **incomplete compression rounds**, **predictable structure**, and **inefficient resistance to brute-force attacks**. The **three-round variant is particularly vulnerable** due to its **reduced non-linearity**, allowing attackers to exploit **length-extension attacks** and **preimage resistance weaknesses**, as demonstrated by **differential and boomerang cryptanalysis**. The lack of a **salt or keyed variant** in its basic form exposes it to **rainbow table attacks**, while its **Feistel-based compression** enables **GPU/ASIC optimization** for collision-finding (e.g., via **birthday paradox attacks**), with **2¹⁰⁰ operations** theoretically required for collision resistance—now infeasible given modern computational power. Additionally, the **fixed block size (512-bit)** and **linear compression function** facilitate **differential cryptanalysis**, where chosen-plaintext attacks can exploit bit-level transitions to invert the hash, rendering it unsuitable for modern security applications.

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

How to Crack Haval-160 (3 rounds)

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