Random MD4 Hashes Generator
Generate random MD4 hash values instantly. Full RFC 1320 implementation with configurable count, case, separators, and export options.
About
MD4 is a 128-bit cryptographic hash function designed by Ronald Rivest in 1990, specified in RFC 1320. It processes input through three rounds of 16 operations on 512-bit blocks, producing a 32-character hexadecimal digest. While MD4 is cryptographically broken for security purposes (collision attacks exist with complexity < 28 operations), it remains relevant in legacy protocol analysis, NTLM authentication research, and as a pedagogical reference for understanding Merkle - Damgård construction. This tool computes genuine MD4 digests from cryptographically random inputs via crypto.getRandomValues(). It does not simulate or truncate SHA-256. Each output is a valid MD4 hash verifiable against any RFC 1320 reference implementation.
Generating predictable or low-entropy hashes for test fixtures leads to false positives in collision detection tests and unreliable deduplication benchmarks. This generator ensures each input seed contains 128 bits of entropy (16 random bytes), guaranteeing uniform distribution across the 2128 output space. Note: MD4 must not be used for password hashing, digital signatures, or any integrity-critical application. Use SHA-256 or BLAKE3 for those.
Formulas
MD4 initializes four 32-bit state registers and processes the padded message in 512-bit blocks. Each block undergoes three rounds with distinct auxiliary functions:
The state registers are initialized to: A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476. Round 1 uses F with additive constant 0x00000000. Round 2 uses G with constant 0x5A827999 (the square root of 2). Round 3 uses H with constant 0x6ED9EBA1 (the square root of 3). Message padding appends a 1 bit, then zeros, then the 64-bit message length in little-endian, ensuring total length ≡ 0 (mod 512). The final digest is the concatenation of registers A, B, C, D in little-endian byte order, yielding 128 bits (32 hex characters).
Where X, Y, Z = 32-bit words from the state registers. ∧ = bitwise AND. ∨ = bitwise OR. ¬ = bitwise NOT. &xor; = bitwise XOR. Each round applies circular left shifts by variable amounts (3, 7, 11, 19 in Round 1; 3, 5, 9, 13 in Round 2; 3, 9, 11, 15 in Round 3).
Reference Data
| Hash Function | Digest Size | Block Size | Rounds | Year | Status | Designer | Operations/Round | Collision Resistance | Use Case Today |
|---|---|---|---|---|---|---|---|---|---|
| MD4 | 128 bit | 512 bit | 3 | 1990 | Broken | Rivest | 16 | < 28 | NTLM research, legacy |
| MD5 | 128 bit | 512 bit | 4 | 1992 | Broken | Rivest | 16 | 218 | Checksums (non-security) |
| SHA-1 | 160 bit | 512 bit | 4 | 1995 | Broken | NSA | 20 | 263 | Git (migrating away) |
| SHA-256 | 256 bit | 512 bit | 64 | 2001 | Secure | NSA | 1 | 2128 | TLS, Bitcoin, signatures |
| SHA-384 | 384 bit | 1024 bit | 80 | 2001 | Secure | NSA | 1 | 2192 | TLS certificates |
| SHA-512 | 512 bit | 1024 bit | 80 | 2001 | Secure | NSA | 1 | 2256 | High-security hashing |
| SHA-3 (256) | 256 bit | 1088 bit | 24 | 2015 | Secure | Bertoni et al. | 1 | 2128 | Post-quantum readiness |
| BLAKE2b | 512 bit | 1024 bit | 12 | 2012 | Secure | Aumasson et al. | 1 | 2256 | Fast secure hashing |
| BLAKE3 | 256 bit | 512 bit | 7 | 2020 | Secure | O'Connor et al. | 1 | 2128 | Fastest secure hash |
| RIPEMD-160 | 160 bit | 512 bit | 5 | 1996 | Weakened | Dobbertin et al. | 16 | 280 | Bitcoin address derivation |
| Whirlpool | 512 bit | 512 bit | 10 | 2000 | Secure | Rijmen & Barreto | 1 | 2256 | ISO/IEC 10118-3 |
| Tiger | 192 bit | 512 bit | 24 | 1996 | Weakened | Anderson & Biham | 1 | 296 | P2P file verification |
Frequently Asked Questions
crypto.getRandomValues(), which draws from the operating system's CSPRNG (e.g., /dev/urandom on Linux, BCryptGenRandom on Windows). Since the input space (2128 possible seeds) matches the output space (2128 possible digests), and MD4's compression function is a surjective mapping for random inputs, the output distribution is effectively uniform. No two generated hashes will collide in practice.