MD5 / SHA1 Hash Oluşturucu Nedir?
MD5 / SHA1 Hash Oluşturucu, girdiğiniz herhangi bir metni tek yönlü bir kriptografik özet fonksiyonundan geçirerek sabit uzunlukta, benzersiz bir hash (özet) değerine dönüştüren ücretsiz bir araçtır. Hash, parmak izine benzer: aynı metin her zaman aynı çıktıyı üretirken, metindeki tek bir harfin değişmesi bile tamamen farklı bir sonuç doğurur. Bu özelliği sayesinde hash; dosya bütünlüğü kontrolü (checksum), şifre saklama, dijital imza, blockchain ve veri doğrulama gibi birçok alanda kullanılır.
Aracımız dört yaygın algoritmayı destekler: MD5, SHA-1, SHA-256 ve SHA-512. Metniniz tarayıcıdan sunucuya gönderilir, seçtiğiniz algoritmayla işlenir ve onaltılık (hexadecimal) biçimde özeti döndürülür. Hash şifreleme değildir; geri döndürülemez, yani üretilen özetten orijinal metne dönmek mümkün değildir.
Nasıl Hesaplanır?
Araç, metni önce UTF-8 kodlamasıyla bayt dizisine çevirir, ardından seçilen algoritmayı uygulayıp sonucu onaltılık karaktere dönüştürür. Formül şu şekildedir: hash = createHash(algoritma).update(metin, "utf-8").digest("hex"). Çıktının özellikleri ise: hashUzunluk = üretilen onaltılık karakter sayısı ve bitUzunluk = hashUzunluk × 4 (her onaltılık karakter 4 bit taşır). Buna göre MD5 → 32 karakter / 128 bit, SHA-1 → 40 karakter / 160 bit, SHA-256 → 64 karakter / 256 bit, SHA-512 → 128 karakter / 512 bit üretir.
Adım Adım Örnek
Diyelim ki "merhaba" metninin MD5 ve SHA-1 özetini almak istiyorsunuz:
- 1. Adım: Metin UTF-8 ile baytlara çevrilir (7 karakter, 7 bayt).
- 2. Adım: MD5 algoritması uygulanır ve onaltılık çıktı alınır: c39436ee452e641cde2eb992ab397911 — 32 karakter, yani 32 × 4 = 128 bit.
- 3. Adım: Aynı metin SHA-1 ile işlenirse: 8af22540a3ae8c4a05e7eabb53d26cfc3393e91c — 40 karakter, yani 40 × 4 = 160 bit.
Görüldüğü gibi aynı metin, farklı algoritmalarda farklı uzunluk ve değerlerde özet üretir; ancak aynı algoritma + aynı metin her zaman aynı sonucu verir (deterministik yapı).
Hangi Algoritmayı Seçmelisiniz?
MD5 ve SHA-1 günümüzde çarpışma saldırılarına karşı güvensiz kabul edilir; şifre saklamada kesinlikle kullanılmamalıdır ve yalnızca hızlı checksum/bütünlük kontrolü gibi güvenlik gerektirmeyen işlerde tercih edilmelidir. Hassas veriler ve şifre saklama için SHA-256 ya da daha güçlü olan SHA-512 önerilir (tercihen rastgele bir "salt" değeriyle birlikte).
Algoritma Karşılaştırma Tablosu
| Algoritma | Bit Uzunluğu | Hex Karakter | Güvenlik Durumu | Önerilen Kullanım |
|---|---|---|---|---|
| MD5 | 128 bit | 32 | Güvensiz (çarpışma) | Sadece checksum |
| SHA-1 | 160 bit | 40 | Güvensiz (2017+) | Eski sistemler / Git |
| SHA-256 | 256 bit | 64 | Güvenli | Şifre saklama, blockchain |
| SHA-512 | 512 bit | 128 | Güvenli (en güçlü) | Çok hassas veriler |
Sıkça Sorulan Sorular
Hash şifreleme midir, geri çözülebilir mi?
Hayır. Hash tek yönlü bir fonksiyondur ve şifreleme değildir. Üretilen özetten orijinal metni matematiksel olarak geri elde etmek mümkün değildir; bu yüzden veri doğrulamada ve şifre saklamada kullanılır.
MD5 neden güvensiz sayılıyor?
MD5, iki farklı metnin aynı özeti ürettiği "çarpışma" saldırılarına karşı kırılmıştır. Bu nedenle dijital imza veya şifre saklamada güvenli değildir; yalnızca hızlı bütünlük kontrolü için kullanılması önerilir.
Aynı metin her zaman aynı hash'i mi verir?
Evet, hash fonksiyonları deterministiktir. Aynı algoritma ve aynı metin daima aynı çıktıyı üretir. Bu yüzden bir dosyanın bozulup bozulmadığını özetleri karşılaştırarak doğrulayabilirsiniz.
Türkçe karakterler hash'i etkiler mi?
Araç metni UTF-8 ile kodladığından "ş", "ı", "ğ" gibi Türkçe harfler doğru baytlara dönüştürülür. "Merhaba" ile "merhaba" veya "şehir" ile "sehir" tamamen farklı hash değerleri üretir.
Şifremi saklamak için hangi algoritmayı kullanmalıyım?
Şifre saklamada MD5 ve SHA-1 kullanmayın. En azından SHA-256 veya SHA-512 tercih edin ve her şifre için rastgele bir "salt" ekleyin. Üretim ortamlarında bcrypt/Argon2 gibi özel parola fonksiyonları daha da güvenlidir.
Hash uzunluğu neden algoritmaya göre değişiyor?
Her algoritma sabit bir bit uzunluğunda çıktı üretir: MD5 128 bit, SHA-1 160 bit, SHA-256 256 bit, SHA-512 512 bit. Onaltılık karakter sayısı bu bitlerin dörtte biridir (her hex karakter 4 bit).
İpuçları
- Bir indirme dosyasının doğruluğunu kontrol ederken, sitede verilen checksum ile aracın ürettiği hash'i karşılaştırın; birebir aynı olmalıdır.
- Güvenlik gerektiren işlerde MD5/SHA-1 yerine SHA-256 veya SHA-512 seçin.
- Hash'i karşılaştırırken büyük/küçük harf farkına dikkat edin; çıktı küçük harf onaltılık biçimdedir.
- Metnin başında veya sonunda fark etmediğiniz bir boşluk bile özeti tamamen değiştirir; karşılaştırmadan önce metni kontrol edin.
Diğer bilişim araçlarımıza da göz atabilirsiniz: Güçlü Şifre Oluşturucu ile güvenli rastgele parolalar üretebilir, Base64 Encode / Decode aracıyla metinlerinizi kolayca kodlayıp çözebilirsiniz.