MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 — MD4 — mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin).

Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan nilai hash 128-bit. Pada standard Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.

Algoritma

Proses MD5 pesan variabel-panjang menjadi output tetap-panjang 128 bit. Pesan masukan dipecah menjadi potongan-bit blok 512 (enam belas 32-bit little endian integer); pesan empuk sehingga panjangnya dibagi oleh 512. Padding bekerja sebagai berikut: bit tunggal pertama, 1, ditambahkan ke akhir pesan. Hal ini diikuti oleh sebagai nol sebanyak yang diperlukan untuk membawa pesan panjang sampai dengan 64 bit kurang dari kelipatan 512. Bit sisa diisi dengan sebuah integer 64-bit yang mewakili panjang pesan asli, dalam bits.
Algoritma MD5 utama beroperasi pada kondisi 128-bit, dibagi menjadi empat-bit kata-kata 32, dinotasikan A, B, C dan D. Ini diinisialisasi dengan konstanta tetap tertentu. Algoritma utama kemudian beroperasi pada masing-masing blok pesan 512-bit pada gilirannya, setiap blok memodifikasi negara. Pengolahan blok pesan terdiri dari empat tahap yang sama, disebut putaran, setiap putaran terdiri dari 16 operasi serupa berdasar pada fungsi linier F-non, penambahan modular , dan rotasi kiri. Gambar 1 mengilustrasikan satu operasi dalam putaran.
. menandakan XOR , DAN , ATAU dan TIDAK operasi masing-masing.