MD5 hash, bir veri parçasının benzersiz bir dijital parmak izi gibidir. Bu parmak izi, verideki en ufak bir değişiklikte bile tamamen farklı bir hale gelir. Bu sayede, dosyalarınızın orijinalliğini kontrol edebilir, veri sızıntılarını tespit edebilir ve şifrelerin güvenliğini sağlayabilirsiniz. Web siteleri, yazılım geliştirme, veri depolama gibi birçok alanda kullanılan MD5 hash'ler, verilerinizin güvenliğini sağlamak için olmazsa olmaz bir araçtır.
MD5, açılımı (Message Digest Algorithm 5) olan kriptografik özet fonksiyonudur. 1991 yılında Profesör Ron Rivest tarafından geliştirilen bir şifreleme algoritmasıdır. MD5 sayesinde giriş yapılan herhangi bir uzunlukta metini 128 bit (16 bayt) boyutunda parmak izine kodlayarak tek yönlü olarak oluşturur. Bu yöntem sayesinde şifre çözülemez ve gizlenmek istenilen verinin güvenliği bayağı bir arttırılmış olur.
MD5, bir çok alan ve sektörde kullanılabilir. Birinci kullanım alanı veri bütünlüğünü doğrulamaktır diyebiliriz. Örneğin web sitesinden indirdiğimiz bir dosyanın MD5 özet değeri verilmişse, biz dosyayı indirdikten sonra dosyanın MD5 özetini kendimiz hesaplayıp verilen ile sonradan hesapladığımızı karşılaştırabiliriz. Bu şekilde verinin doğru olarak indirilip indirilmediğini tespit edebiliriz. İşletim sistemleri ve bazı yazılımlar da güncelleme yaptıklarında bu doğrulama yönteminden yararlanırlar.
İkinci kullanım alanı, şifrelerin veritabanlarında saklanmasıdır. Örneğin bir siteye girdiğiniz şifre veritabanına MD5 özeti şeklinde kaydedilebilir. Dolayısıyla site yöneticisi dahi sizin şifrenizi bilemez. Ayrıca veritabanındaki bilgiler çalındığında da şifreler güvende olur. Şifre ile siteye girdiğiniz zaman da girdiğiniz şifrenin MD5 özeti hesaplanır. Veritabanındaki özet ile girdiğiniz şifrenin özeti aynıysa şifre aynı kabul edilir.
MD5 özetinin eski haline döndürülmesi imkansızdır. Çünkü veri ne kadar uzun olursa olsun sonuç 16 bayttır. Örneğin 100000 karakter gibi uzun bir veri sadece 16 bayt ile temsil edilemez. Ancak MD5 veritabanları sayesinde "brute force" denilen bir yöntemle 16 karaktere kadar çeviri yapılabildiği söylenmektedir.
MD5 özeti sadece 16 bayttan oluştuğu için farklı verilerin MD5 özetlerinin aynı olma ihtimali vardır. Bu da MD5'in zayıf yönlerinden biridir.