MD5 Hash Üretici
Herhangi bir metni girin ve 128 bitlik MD5 hash değerini 32 karakterlik onaltılık (hexadecimal) bir dizi olarak anında alın. Sağlama toplamları, dosya doğrulama ve veri bütünlüğü kontrolleri için kullanışlıdır.
MD5 Hash Üretin
MD5 Hash Formülü
Burada:
- \(M\) — önce UTF-8 baytlarına dönüştürülen girdi mesajı
- \(F, G, H, I\) — MD5'in dört turunda kullanılan dört Boole yardımcı fonksiyonu
- \(\land, \lor, \lnot, \oplus\) — bit düzeyinde AND, OR, NOT ve XOR işlemleri
Mesaj, uzunluğu 512 bitin katına gelecek şekilde, sonuna orijinal bit uzunluğu eklenerek uzatılır. Ardından algoritma her 512 bitlik bloğu 64 adımda işler; bloktaki veriyi, \(A = \texttt{67452301}\), \(B = \texttt{efcdab89}\), \(C = \texttt{98badcfe}\), \(D = \texttt{10325476}\) sabitleriyle başlatılan dört 32 bitlik yazmaçla karıştırır. Dört yazmacın son değerleri, little-endian düzeninde yazıldığında 128 bitlik özeti (digest) oluşturur.
MD5 Hash – Hesaplama Örneği
Örnek: Hello world! metni MD5 ile hash'lenmektedir.
\[ \text{MD5}(\texttt{Hello world!}) = \texttt{86fb269d190d2c85f6e04e8f79d3d8a5} \]
Sonuç: 32 karakterlik onaltılık MD5 hash değeri 86fb269d190d2c85f6e04e8f79d3d8a5.
MD5 Hash Üretici Nasıl Kullanılır?
- Metninizi Hash'lenecek Metin alanına yazın veya yapıştırın. Satır sonları ve Latin alfabesi dışı karakterler dahil her karakteri girebilirsiniz.
- Hesaplayıcı metni tarayıcınızda işler ve sonucu Hash Sonucu altındaki MD5 Hash kutusunda gösterir.
- 32 karakterlik onaltılık diziyi kopyalayın ve hash'e ihtiyaç duyduğunuz her yerde kullanın — sağlama toplamı, arama anahtarı veya karşılaştırma değeri olarak.
- Farklı bir metni hash'lemek için girdiyi değiştirmeniz yeterlidir; hash otomatik olarak güncellenir.
MD5 Hash Nedir?
MD5 (Message-Digest Algorithm 5, Mesaj Özeti Algoritması 5), Ronald Rivest tarafından 1991'de tasarlanan ve RFC 1321'de tanımlanan bir kriptografik hash fonksiyonudur. Herhangi bir uzunluktaki girdiyi alır ve genellikle 32 onaltılık karakterle yazılan sabit bir 128 bitlik (16 baytlık) parmak izi üretir. Aynı girdi her zaman aynı hash'i üretirken, girdideki çok küçük bir değişiklik — bir boşluk eklemek, bir harfin büyük/küçük harfini değiştirmek — tamamen farklı bir özet üretir.
Bir hash fonksiyonunun temel özelliği tek yönde çalışmasıdır: metinden hash'i hesaplamak hızlıdır, ancak hash'den metni geri çıkarmak hesaplama açısından pratikte olanaksızdır. Bu, MD5'i veri bütünlüğünü doğrulamak için kullanışlı kılar: iki metnin (veya dosyanın) MD5 hash'i aynıysa neredeyse kesinlikle özdeştirler; hash'ler farklıysa metinler kesinlikle farklıdır.
Yaygın kullanım alanları arasında indirilen dosyalar için sağlama toplamları, yinelenen veri tespiti, önbellek anahtarları ve kritik olmayan veritabanı kaydı parmak izlemesi yer alır. Çıktı kısa ve sabit boyutlu olduğu için MD5, dizin veya arama anahtarı olarak da kullanışlıdır. Hash'in arkasındaki baytları incelemek isterseniz, rakamlar yalnızca onaltılık değerlerdir — Hex Dönüştürücü aracımızın işlediği formatla aynıdır.
Sınırlamalar ve Pratik İpuçları
- Parolalar için güvenli değil. MD5, parola saklama için çok hızlı ve çok iyi incelenmiş bir algoritmadır. Modern parola hash'leme, tuz (salt) ile birlikte bcrypt, scrypt veya Argon2 gibi bilinçli olarak yavaş algoritmalar gerektirir.
- Çakışma (collision) saldırıları mevcuttur. Araştırmacılar aynı MD5 hash'ine sahip iki farklı girdinin nasıl oluşturulabileceğini gösterdiler. Güvenlik açısından kritik imzalar ve sertifikalar için bunun yerine SHA-256 veya daha güçlü bir algoritma kullanın.
- Sağlama toplamı ve tekilleştirme için uygundur. Kazayla bozulma kontrolleri, yinelenen veri tespiti ve kötü niyetli olmayan parmak izlemesi için MD5 hâlâ tamamen pratik ve yaygın olarak desteklenmektedir.
- Girdi kodlaması önemlidir. Bu hesaplayıcı metninizin UTF-8 kodlamasını hash'ler. Aynı metnin farklı şekilde kodlanmış hâli (örneğin Base64 olarak veya URL Kodlayıcı ile URL kaçış dizileri uygulanmış hâli) farklı bir hash üretecektir.
- Sondaki boşluklar sayılır. Sonda bulunan bir boşluk veya satır sonu, hash'i tamamen değiştirir; bu nedenle metin yapıştırırken dikkatli olun — Karakter Sayacı, girdinin uzunluğunu doğrulamanıza yardımcı olabilir.
- Her şey yerel olarak çalışır. Hash'leme tarayıcınızda gerçekleştirilir; metniniz hiçbir zaman bir sunucuya yüklenmez.
Sıkça Sorulan Sorular
Komut satırından MD5 hash'i nasıl hesaplarım?
Linux'ta md5sum dosyaadı, macOS'ta ise md5 -s "metniniz" komutunu çalıştırın. Windows PowerShell'de Get-FileHash -Algorithm MD5 dosyaadı komutunu kullanın. Çıktı, bu hesaplayıcının ürettiği 32 karakterlik onaltılık diziyle aynıdır; böylece sonuçları çapraz kontrol edebilirsiniz. Komut satırı araçlarının bir dosyanın ham baytlarını hash'lediğini unutmayın; bu nedenle farklı kodlamalara veya satır sonlarına (CRLF ve LF) sahip metin dosyaları farklı hash'ler üretecektir.
Boş bir metnin MD5 hash'i nedir?
Boş dizi geçerli bir MD5 girdisidir ve hash'i, iyi bilinen d41d8cd98f00b204e9800998ecf8427e değeridir. Bu hesaplayıcı boş olmayan girdi gerektirir, ancak bir veritabanında veya sağlama toplamı dosyasında bu hash'i görürseniz, bu neredeyse her zaman girdinin boş olduğu anlamına gelir — örneğin sıfır baytlık bir dosya. Bu bir hata kodu değildir; yalnızca hiçbir şeyin MD5 hash'idir.
Bir MD5 hash tersine çevrilebilir veya şifresi çözülebilir mi?
Hayır. MD5 tek yönlü bir fonksiyondur: 128 bitlik özetten orijinal girdiye geri dönmek için çalıştırılabilecek bir algoritma yoktur. İnsanların "MD5 şifre çözme" dediği web siteleri aslında yaygın girdilerin önceden hesaplanmış dev tablolarını (gökkuşağı tabloları) kullanır. Böyle bir veritabanında bulunmayan hiçbir metin geri kazanılamaz. Ayrıca her hash değerini sonsuz sayıda girdi paylaştığı için, eşleşen bir aday bile orijinal metniniz olmayabilir.
Aynı metin başka bir araçta neden farklı bir MD5 hash'i veriyor?
En yaygın nedenler kodlama ve görünmez karakterlerdir. Bu hesaplayıcı UTF-8 baytlarını hash'ler; Latin-1, UTF-16 veya Base64 girdisi kullanan bir araç farklı bir özet üretecektir. Kopyala-yapıştır sırasında eklenen sondaki boşluklar, satır sonları veya Windows satır sonları (CRLF) da sonucu tamamen değiştirir. Girdinizin tam bayt uzunluğunu her iki araçta da karşılaştırın — bayt sayıları farklıysa hash'ler de farklı olmak zorundadır.
MD5, 2025'te hâlâ güvenli mi?
Amacına bağlıdır. MD5, parola saklama, dijital imzalar, TLS sertifikaları veya bir saldırganın bilinçli olarak manipüle edebileceği her şey için güvenli değildir — çakışma saldırıları pratik ve hızlıdır. Kötü niyetli olmayan görevler için ise kabul edilebilir durumdadır: dosyaların kazayla bozulup bozulmadığını kontrol etmek, verileri tekilleştirmek ve önbellek anahtarları üretmek gibi. Güvenlik açısından hassas herhangi bir kullanım için bunun yerine SHA-256 veya SHA-3 seçin.
Kazara bir MD5 çakışması ne kadar olasıdır?
Kazara gerçekleşen çakışmalar fiilen imkânsızdır. 128 bitlik çıktıyla, bir çakışmanın olası hâle gelmesi için yaklaşık 264 (kabaca 18 kentilyon) rastgele girdiyi hash'lemeniz gerekir — bu, günlük veri hacimlerinin çok ötesindedir. Manşetlere çıkan çakışmalar, MD5'in matematiksel zayıflıklarından yararlanarak bilinçli olarak üretilmiş çiftlerdir, rastgele olanlar değildir. Dolayısıyla kazara dosya bozulmasını veya yinelenen verileri tespit etmek için eşleşen bir MD5 hash'i güvenilir bir kimlik sinyalidir.
MD5, SHA-1 ve SHA-256 arasındaki fark nedir?
Üçü de kriptografik hash fonksiyonudur ve esas olarak çıktı boyutu ile güvenlik açısından farklılık gösterir. MD5 128 bit, SHA-1 160 bit ve SHA-256 256 bit çıktı üretir. MD5 ve SHA-1'in her ikisi de kötü niyetli kullanım için kriptografik olarak kırılmış kabul edilir; SHA-256, güvenlik uygulamaları için güncel standarttır. Basit sağlama toplamları için MD5'in daha kısa 32 karakterlik çıktısı daha kompakt ve karşılaştırması daha hızlıdır; güvenlik amacı dışındaki kullanımlarda bu nedenle hâlâ yaygın olarak kullanılır.