Hash Nedir, Ne İşe Yarar?
"Hash" kelimesini parola güvenliğinden dosya indirmelerine, blok zincirinden veri tabanlarına kadar her yerde duyarsınız. Ama tam olarak ne yapar, nasıl çalışır ve neden şifrelemeden farklıdır? Bu rehberde hash fonksiyonunu temelden, örneklerle açıklıyoruz.
Hash nedir?
Örneğin "Merhaba Dünya" metninin SHA-256 özeti her zaman 0a4d55a8d778e5022fab701977c5d840bbc486d0... ile başlayan aynı 64 karakterlik diziyi verir — siz de hash oluşturucuya aynı metni yazdığınızda birebir aynı sonucu görürsünüz. Ama sadece bir harfi değiştirip "merhaba Dünya" yazsanız (küçük "m"), çıktı baştan sona bambaşka olur. Bu, hash'in "parmak izi" gibi çalışmasının nedenidir.
Hash fonksiyonu nasıl çalışır?
Örneğin SHA-256, veriyi 512 bitlik parçalara böler ve her parçada 64 tur sıkıştırma uygulayarak 256 bit (64 hex karakter) bir özet üretir. Tarayıcınızda bu işlemi elle kodlamanıza gerek yoktur; crypto.subtle.digest('SHA-256', veri) fonksiyonu bunu donanım hızında yapar. MD5 ise benzer bir mantıkla çalışır ama daha kısa (128 bit) özet üretir ve daha basit bir tur yapısına sahiptir — bu da onu hem daha hızlı hem de kriptografik olarak daha zayıf yapar.
Bir hash fonksiyonunun dört temel özelliği
İyi bir hash fonksiyonunun taşıması gereken dört özellik vardır. Bu özellikler, hash'in neden bu kadar çok yerde güvenle kullanılabildiğini açıklar:
- Determinizm: Aynı girdi, her zaman ve her yerde (hangi bilgisayarda çalıştırılırsa çalıştırılsın) aynı hash'i üretir.
- Çığ etkisi (avalanche effect): Girdide tek bir bit değişse bile, çıktının yaklaşık yarısı değişir. Bu sayede benzer girdiler benzer hash'ler üretmez.
- Tek yönlülük: Hash'ten girdiye geri dönmek, pratikte imkânsıza yakın kadar zordur (yalnızca deneme-yanılma / rainbow table ile kısmen aşılabilir).
- Çakışma direnci: İki farklı girdinin aynı hash'i üretmesi (çakışma/collision) matematiksel olarak mümkündür ama iyi bir algoritmada bunu bulmak pratik olarak imkânsız olmalıdır. MD5 ve SHA-1'de bu direnç kırılmıştır.
Hash ne işe yarar? Gerçek kullanım alanları
| Kullanım alanı | Hash ne yapar? |
|---|---|
| Dosya bütünlüğü | İndirilen dosyanın hash'i, yayıncının verdiğiyle karşılaştırılır; eşleşme = bozulmamış dosya. |
| Parola saklama | Sunucular parolanızı düz metin değil, tuzlanmış hash'ini saklar (bcrypt, Argon2 gibi özel hash'ler). |
| Dijital imza | İmzalanacak belgenin önce hash'i alınır, sonra bu kısa özet özel anahtarla imzalanır. |
| Blok zinciri | Her blok, bir önceki bloğun hash'ini içerir; bu zincir geçmişi değiştirilemez kılar. |
| Git / versiyon kontrol | Her commit, içeriğinin SHA-1/SHA-256 hash'i ile tanımlanır (commit ID). |
| Hash tablosu (programlama) | Verilere hızlı erişim için hash, dizideki konumu belirlemekte kullanılır. |
Kaynak: NIST FIPS 180-4 (Secure Hash Standard), yaygın yazılım mühendisliği pratikleri.
Kendi web sitenizde veya günlük işlerinizde en sık karşılaşacağınız kullanım, indirdiğiniz bir dosyanın bütünlüğünü doğrulamaktır. Bunu nasıl adım adım yapacağınızı "Dosya Bütünlüğü Hash ile Nasıl Kontrol Edilir?" rehberimizde anlatıyoruz.
Hemen bir hash oluşturun
Metin veya dosyanızın MD5, SHA-1, SHA-256, SHA-384, SHA-512 özetini saniyede hesaplayın — hiçbir veri sunucuya gönderilmez.
Hash Oluşturucuyu Aç →Hash ile şifreleme arasındaki fark nedir?
Bu ayrım pratikte şunu ifade eder: bir dosyayı şifrelerseniz, o dosyayı isteyen biri (doğru anahtarla) tekrar okuyabilir hale getirebilir. Ama bir dosyanın hash'ini paylaştığınızda, karşı taraf yalnızca "elimdeki dosya bu hash'i üretiyor mu" diye kontrol edebilir; hash'ten dosyanın içeriğini asla elde edemez. Bu yüzden parolalar şifrelenmez, hash'lenir — çünkü sunucunun bile sizin gerçek parolanızı bilmesine gerek yoktur, yalnızca girdiğiniz parolanın hash'inin veritabanındakiyle eşleşip eşleşmediğini kontrol eder.
MD5, SHA-1, SHA-256 hangisini kullanmalıyım?
Kısaca: güvenlik gerektiren her iş için SHA-256 veya daha uzun özet isteyen sistemlerde SHA-512 kullanın. MD5 ve SHA-1 yalnızca eski sistem uyumluluğu veya kriptografik olmayan hızlı checksum işlerinde tercih edilmelidir. Algoritmalar arasındaki tam farkı, örnek hash değerleriyle "MD5, SHA-1, SHA-256 Arasındaki Fark" rehberinde karşılaştırdık.