- MD5, herhangi bir metni 128 bitlik, yani 32 haneli onaltılık bir özete çeviren hash fonksiyonudur; şifreleme sayılmaz.
- Girdide tek karakter değişse özet baştan aşağı değişir: "hello" ile "Hello" özetleri birbirine hiç benzemez.
- MD5 parola saklamak için güvenli değildir; dosya bütünlüğü kontrolünde kullan, parola için bcrypt, scrypt veya Argon2 tercih et.
MD5, herhangi bir metni sabit uzunlukta bir parmak izine dönüştüren hash fonksiyonudur. Aşağıdaki araca bir metin yazarsan 32 haneli özetini anında görürsün.
MD5 nedir?
MD5 veriyi 128 bitlik, yani 32 haneli onaltılık bir özete çevirir. 1992'de RFC 1321 ile yayımlandı. Şifreleme yöntemi sayılmaz, çünkü veriyi gizlemez; yalnız ona bir parmak izi çıkarır. Aynı girdi her seferinde aynı özeti verir, çıktının uzunluğu hep aynıdır ve girdide tek bir karakter değişse özet baştan aşağı değişir.
| Girdi | MD5 özeti |
|---|---|
| (boş metin) | d41d8cd98f00b204e9800998ecf8427e |
| a | 0cc175b9c0f1b6a831c399e269772661 |
| abc | 900150983cd24fb0d6963f7d28e17f72 |
| hello | 5d41402abc4b2a76b9719d911017c592 |
| Hello | 8b1a9953c4611296a827abf8c47804d7 |
"hello" ile "Hello" arasında tek harf fark var, ama özetleri birbirine hiç benzemiyor. Buna çığ etkisi deniyor.
Özet nasıl hesaplanır?
Algoritma önce girdinin sonuna bir 1 biti ve ardından sıfırlar ekleyerek onu 512 bitlik bloklara tamamlar. Dört sabit değişken her blokta 64 turluk bit işleminden geçer, sonunda bu değişkenler birleşip 128 bitlik özeti oluşturur. Araç metni UTF-8 olarak kodluyor; Türkçe harfli bir metin de öteki UTF-8 araçlarıyla aynı sonucu verir.
MD5 nerede kullanılır?
MD5'i makul biçimde kullanabileceğin yer bütünlük kontrolü: indirdiğin dosyanın özeti yayımcının verdiğiyle aynıysa dosya aktarım sırasında bozulmamıştır. Tekrarlanan verileri bulmak ve önbellek anahtarı üretmek de başka örnekler. Bu işlerde kazara oluşan farkı yakalamak yeterlidir; bir saldırganı durdurman gerekmez.
MD5 parola saklamak için güvenli DEĞİLDİR. Çakışma saldırıları gösterilmiştir ve algoritma çok hızlıdır; sızan özetler hazır tablolarla ya da kaba kuvvetle hızla çözülebilir. Parola için bcrypt, scrypt veya Argon2, genel güvenli özet için SHA-256 ve üzerini tercih et.
MD5 kullanımında sık yapılan hatalar
- MD5'i şifreleme sanmak. Özet geri çözülmez, ama gizlilik de sağlamaz.
- Özet tutmayınca suçu algoritmada aramak. Görünmeyen bir boşluk ya da farklı satır sonu bile özeti tamamen değiştirir.
- Dosya adını metin kutusuna yazıp çıkan sonucu dosyanın özeti sanmak. Araç dosyanın içeriğini okumaz, yalnız yazdığın metni özetler.
Gerçek parolalarını üçüncü taraf sitelere yazmayı alışkanlık edinme. MD5 aracını sağlama kontrolü için kullan.
Güçlü bir parola üretmek için şifre aracına, metin uzunluğunu ölçmek için kelime sayısı aracına bak.

