MD4 Hash
Technical details, regex signatures, and cracking commands for the MD4 algorithm.
What is MD4?
MD4 (Message-Digest algorithm 4) was designed by Ronald L. Rivest in 1990 as part of the MD family of cryptographic hash functions, intended to provide a compact 128-bit hash value for verifying data integrity. Structurally, MD4 operates through a deterministic process of three rounds (each processing 16 chunks of 32-bit data) that iteratively apply bitwise operations (AND, OR, XOR) and modular addition to three 32-bit variables (A, B, C) initialized to specific constants. The algorithm processes input messages in 512-bit blocks, padding shorter inputs with a bit '1' followed by zeros to meet the block size requirement, and concatenates a 64-bit message length in bits at the end. Its primary use-case was digital signatures, checksum verification, and lightweight data integrity checks, though it was never intended for security-sensitive applications like password storage due to its known vulnerabilities.
MD4’s security flaws stem from fundamental design weaknesses exacerbated by computational advancements. The algorithm lacks salting, making it vulnerable to rainbow table attacks, and its fixed-round structure enables optimized collision-finding attacks (e.g., via differential cryptanalysis) that exploit predictable bit transitions. Early implementations also suffered from CPU/GPU parallelization, allowing brute-force precomputation of hash collisions at scale. Theoretical analyses demonstrated that MD4’s compression function could be inverted with sub-exponential complexity (O(2^64)), and practical attacks (e.g., the 1996 collision found by Xiaoyun Wang et al.) exploited bit-level patterns to forge distinct inputs producing identical hashes. These flaws rendered MD4 obsolete for security purposes by the mid-1990s, with modern standards like SHA-2 or BLAKE3 replacing it entirely.
Identifying MD4 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 MD4, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.
How to Crack MD4
If you need to recover the plaintext password for a MD4 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.