MD4 – funkcja skrótu zaprojektowana do zastosowań kryptograficznych. Została jednak złamana (kolizje można generować na typowym PC-cie w czasie rzędu sekund) i jest obecnie bezużyteczna do celów wymagających bezpieczeństwa.
MD4 została więc zastąpiona do praktycznie wszystkich zastosowań przez MD5 oraz inne funkcje skrótu.
MD4 a MD5 MD4 i MD5 mają bardzo podobną budowę: Wiadomość jest uzupełniana do wielokrotności 512 bitów (szczegółowy algorytm w artykule MD5) Ustala się pewien 128-bitowy stan początkowy (cztery 32-bitowe rejestry) Dla każdego 512-bitowego bloku danych uruchamiana jest transformacja, która na podstawie aktualnego stanu oraz tego bloku wylicza nowy stan. Po przerobieniu wszystkich bloków końcowy stan jest zwracany jako wynik funkcji
Najważniejsze różnice wobec MD5: Transformacja ma tylko 3 rundy (48 kroków), zamiast 4 (64 kroków) jak MD5 Do wyniku każdego kroku nie jest dodawana zależna od numeru kroku stała, jedynie stała zależna od numeru rundy (tylko w rundach 2 i 3) Nie występuje też dodawanie wartości jednego rejestru do drugiego W krokach 17-32 używana jest inna funkcja: G(x,y,z) = (x and y) or (x and z) or (y and z)
Kod źródłowy Kod na podstawie (RSA Data Security, Inc.).