MD4 (Message Digest Algorithm 4) is een algoritme (het vierde in een reeks) ontworpen door professor Ronald Rivest van MIT in 1990. Het bevat een hashfunctie voor versleuteling die kan gebruikt worden voor integriteitscontrole van boodschappen. Het algoritme heeft een invloed gehad op latere ontwerpen, zoals MD5, SHA en RIPEMD. MD4 wordt ook gebruikt om wachtwoordcontroles uit te voeren op Microsoft Windows NT, XP en Vista.
Den Boer en Bosselaers toonden in 1991 aan dat MD4 zwakke punten bevat. De eerste collision attack werd ontdekt door Hans Dobbertin in 1996. In augustus 2004 vond Wang een zeer efficiënte collision attack. Later werd dit verbeterd door Sasaki en tegenwoordig kan een collision gegenereerd worden in enkele microseconden.
Een variant van MD4 wordt gebruikt in het ed2k-adresschema om een unieke identificatie te maken voor bestanden in het eDonkey-netwerk.
De 128-bit (16-byte) MD4-hashes (ook message digests genoemd) worden gewoonlijk voorgesteld door een hexadecimaal getal van 32 tekens. Hieronder staat een voorbeeld van een invoer van 43 bytes en de overeenkomstige MD4-hash.
MD4("The quick brown fox jumps over the lazy dog") = 1bee69a46ba811185c194762abaeae90
Een kleine wijziging in de boodschap zal (met zeer hoge waarschijnlijkheid) een compleet andere hash opleveren, bijvoorbeeld:
MD4("The quick brown fox jumps over the lazy cog") = b86e130ce7028da59e672d56ad0113df
De hash van een lege tekst is:
MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0