Döngünün başlangıcında 32 bitlik dört tane (A,B,C,D) değişken bulunur. Başlangıçta bunların değeri sabittir ve her 512 bitlik bloğu işleme soktukça bu değişkenlerin değerleri değişir ve en sondaki bloğuda işledikten sonra elde ettiğimiz A,B,C ve D değişkenlerinin değerlerini yanyana dizdiğimizde (A-B-C-D) 128 bitlik MD sonucumuzu elde etmiş oluruz.
Burada 4 adım (F-G-H-I) göze çarpmaktadır. Her adımın önceden tanımlı ve kendisine özgü birer işlevi bulunmaktadır ve bu işlevler her adımda 16 kez çağırılarak elde edilen sonuç bir sonraki adıma iletilir. Yani her bir 512 bitlik blok için MD5 algoritması 4 adım * 16 işlem = 64 adet işlem yapmaktadır. Bu kadar fazla adımın amacı simetrikliği engelleyip farklı girdiler için farklı sonuçlar üretebilme özelliğini sağlayabimektir. Aşağıda her adımda kullanılan işlevler gösterilmiştir.
Her adımda 16 kez FF işlevi hesaplanır:
from (j = 0 to 15)
FF (a, b, c, d, Mj, s, ti)
Burada:
i: adım numarası
FF (a, b, c, d, Mj, s, ti) => a = b + ((a + F(b, c, d) + Mj + ti) <<< s)
1. adım için F(X, Y, Z) = (X and Y) or ((not X) and Z)
2. adım için F(X, Y, Z) = (X and Z) or (Y and (not Z))
3. adım için F(X, Y, Z) = X xor Y xor Z
3. adım için F(X, Y, Z) = Y xor (X or (not Z))