Algorithms
MD4
MD5's older sibling from 1990. Broken since 1996 and still inside NTLM and ed2k links. Here for those and it has HMAC
Hash / Legacy
MD4
MD5's older sibling, broken before MD5 was.
- Digest
- 128-bit · 16 bytes
- HMAC
- takes a key
- Security
- BROKEN: practical collisions since 1996
- Family
- 3 in MD
4 options, 0 required
Sample
- hex
- aa010fbc1d14c795d86ef98c95479d17
- base64
- qgEPvB0Ux5XYbvmMlUedFw==
Options
Access
- Create
create("md4") - CLI
hashes md4 'hello world' - Tryplayground with the sample above
- Kinmd5, ntlm
Rivest's hash from 1990, three rounds of sixteen steps. MD5 came a year later with a fourth round, because MD4 already looked thin. It was. Dobbertin found a full collision in 1996, and today one takes less work than you'd spend reading this page.
create("md4").hash("abc").digest; // "a448017aaf21d8525fc10ae87aa6729d"
create("md4").hash("").digest; // "31d6cfe0d16ae931b73c59d7e0c089c0"
Then why is it here? Because it never left. Windows keeps every password as MD4 of its UTF-16LE bytes, the NT hash. eDonkey links name files by MD4 of their chunks. OpenSSL 3 moved it to the legacy provider, so Node won't compute it without a flag.
That empty-input digest, 31d6cfe0…, is worth remembering. Spot it in a Windows dump and you're looking at an account with no password.