← Blog'a Dön
Güvenlik 📅 29.08.2026 ⏱️ 8 dakika ✍️ Fevzi Ege Yurtsevenler

Hashing Nedir? Şifrelemeden Farkı (MD5, SHA)

Hash, bir veriyi tek yönlü ve sabit uzunlukta bir "parmak izine" dönüştüren fonksiyondur. Bu yazıda hashing'in şifrelemeden farkını, MD5 ve SHA algoritmalarını ve parolaların neden salt ile hashlendiğini yeni başlayanlar için anlatıyoruz.

#hash nedir#güvenlik#siber güvenlik#yeni başlayanlar

Hash, bir veriyi (metin, dosya ya da parola) sabit uzunlukta ve tek yönlü bir "parmak izine" dönüştüren matematiksel bir fonksiyondur. Aynı girdi her zaman aynı çıktıyı üretir, ama çıktıdan girdiye geri dönmek pratikte imkânsızdır — hashing ile şifrelemeyi ayıran en temel fark da tam olarak budur.

Bu yazıda "hash nedir" sorusunu yeni başlayan biri için sıfırdan açıklıyor; MD5 ile SHA algoritmalarının farkını, hashing'in nerede kullanıldığını ve parolaların neden düz düz saklanmadığını pratik örneklerle gösteriyoruz.

Hash nedir ve nasıl çalışır?

Hash fonksiyonu, ne kadar büyük olursa olsun bir girdiyi alıp her zaman aynı uzunlukta bir çıktı (özet / digest) üretir. Örneğin SHA-256, ister tek kelime ister 1 GB'lık bir dosya verin, hep 64 karakterlik onaltılık (hex) bir dizi döndürür. Üç önemli özelliği vardır: tek yönlüdür (özetten veriye dönemezsiniz), belirlenimcidir (aynı girdi hep aynı özeti verir) ve çığ etkisi gösterir — girdide tek bir harf değişse bile çıktı tamamen başkalaşır.

Hashing ile şifreleme arasındaki fark nedir?

Şifreleme çift yönlüdür: doğru anahtara sahip olan biri şifreli metni tekrar okunabilir hâle çevirebilir. Hashing ise tek yönlüdür ve geri dönüşü hedeflemez; amacı veriyi gizlemek değil, doğrulamaktır. Bir de sık karıştırılan üçüncü kavram var: kodlama (encoding). Base64 gibi kodlamalar ne güvenlik sağlar ne anahtar ister — sadece veriyi taşınabilir bir biçime çevirir ve herkes geri çözebilir.

ÖzellikHashing (SHA-256)Şifreleme (AES)Kodlama (Base64)
YönTek yönlüÇift yönlüÇift yönlü
Anahtar gerekir mi?HayırEvetHayır
Geri çevrilebilir mi?HayırEvet (anahtarla)Evet (herkes)
Ana amaçBütünlük / doğrulamaGizlilikVeri taşıma / biçim
Örnek kullanımParola özeti, dosya kontrolüDisk / mesaj şifrelemeE-posta eki, veri URL'si

Kısacası: bir veriyi gizli tutmak istiyorsanız şifreleme, bir verinin değişmediğini kanıtlamak istiyorsanız hashing kullanırsınız.

MD5, SHA-1 ve SHA-256 arasındaki fark nedir?

Hepsi hash algoritmasıdır ama güvenlik seviyeleri çok farklıdır. MD5 ve SHA-1 üzerinde çakışma (collision) saldırıları başarıyla gösterilmiştir — yani iki farklı girdinin aynı özeti verecek şekilde üretilebildiği kanıtlanmıştır. Bu yüzden güvenlik amaçlı kullanımları (imza, parola, sertifika) artık tavsiye edilmez. SHA-256 ise SHA-2 ailesindendir ve bugün yaygın olarak güvenli kabul edilir.

AlgoritmaÇıktı uzunluğuGüvenlik durumuÖneri
MD5128 bit (32 hex)Kırık (çakışma bulundu)Güvenlikte kullanma
SHA-1160 bit (40 hex)Kırık (çakışma bulundu)Kullanımdan kaldırıldı
SHA-256256 bit (64 hex)Güvenli kabul ediliyorGenel amaçlı tercih
SHA-3 / BLAKE2DeğişkenModern, güvenliYeni projelerde iyi seçenek

Not: MD5 ve SHA-1 tamamen çöp değildir — güvenlik gerektirmeyen yerlerde, örneğin bir dosyanın yanlışlıkla bozulup bozulmadığını hızlı kontrol etmede hâlâ görülebilir. Ama bir saldırganın kasıtlı manipülasyon yapabileceği hiçbir senaryoda kullanılmamalıdır.

Hash fonksiyonunu kendi bilgisayarımda nasıl deneyebilirim?

Hash'i anlamanın en iyi yolu kendi dosyalarınız üzerinde denemektir. Linux'ta bir metnin veya dosyanın özetini şöyle alabilirsiniz:

echo -n "merhaba" | sha256sum
sha256sum ubuntu.iso

macOS'ta:

echo -n "merhaba" | shasum -a 256
shasum -a 256 ubuntu.iso

Windows'ta (PowerShell / cmd):

certutil -hashfile ubuntu.iso SHA256

Deneyin: "merhaba" ve "Merhaba" kelimelerinin SHA-256 özetlerini alın. Sadece tek harf değişmesine rağmen iki çıktının tamamen farklı olduğunu göreceksiniz — bu, çığ etkisidir. Aynı komut, indirdiğiniz bir dosyanın bütünlüğünü doğrulamak için de kullanılır: sitenin yayımladığı SHA-256 değeri ile sizin hesapladığınız değer birebir aynıysa dosya bozulmamış ya da değiştirilmemiş demektir.

Parolalar neden düz hash yerine "salt" ile saklanır?

Bir web sitesi parolanızı asla düz metin olarak saklamamalı; onun yerine parolanın hash'ini tutar. Ama sadece SHA-256'dan geçirmek yetmez, çünkü aynı parola her zaman aynı özeti verir. Saldırganlar bunu, önceden hesaplanmış dev tablolarla (rainbow table) eşleştirebilir. Çözüm salt: her kullanıcı için rastgele üretilen ve parolaya eklenen benzersiz bir değer. Böylece "123456" bile her hesapta farklı bir özet üretir ve hazır tablolar işe yaramaz.

Ayrıca parola için kasıtlı olarak yavaş algoritmalar kullanılır: bcrypt, scrypt, Argon2 ve PBKDF2. Bunlar SHA-256'dan yavaş olacak şekilde tasarlanmıştır ki, bir saldırgan saniyede çok sayıda tahmin deneyemesin. Yeni başlayanlar için altın kural: kendi hashing/parola şemanızı sıfırdan icat etmeyin, olgunlaşmış bu kütüphaneleri kullanın.

Hash nerelerde kullanılır?

Hashing sandığınızdan çok daha yaygındır. Başlıca kullanım alanları:

  • Parola saklama: Sunucu parolanızı değil, salt'lı özetini tutar.
  • Dosya bütünlüğü: İndirilen ISO, yedek veya güncellemenin bozulmadığını doğrulama.
  • Dijital imza ve sertifikalar: Bir belgenin değişmediğini kanıtlama.
  • Git ve blok zinciri: Her commit ve her blok bir hash ile birbirine bağlanır.
  • HMAC: Bir mesajın hem bütünlüğünü hem de kaynağını doğrulayan anahtarlı hash.

Yasal/etik uyarı: Hash "kırma" araçları (ör. hashcat, John the Ripper) yalnızca kendi sistemlerinizde, kendi laboratuvarınızda ya da yazılı izinli sızma testlerinde kullanılmalıdır. Başkasına ait parola hash'lerini izinsiz kırmaya çalışmak suçtur. Bu yazının amacı savunma tarafını anlamak: neden güçlü algoritma, neden salt, neden yavaş hashing.

Teoriyi pekiştirmek isterseniz, hash ve kripto konularını ücretsiz uygulamalı zorluklarla çalışabileceğiniz pratik.altaysec.com.tr güzel bir başlangıç noktasıdır.

Sık Sorulan Sorular

Hash geri çevrilebilir mi?

Hayır, hash tasarımı gereği tek yönlüdür; özetten orijinal veriye matematiksel olarak geri dönemezsiniz. Ancak MD5 gibi zayıf algoritmalarda veya kısa/yaygın parolalarda saldırganlar deneme-yanılma ve hazır tablolarla girdiyi tahmin edebilir. Bu yüzden güçlü algoritma ve salt kullanmak önemlidir.

MD5 hâlâ kullanılabilir mi?

Güvenlik amaçlı hayır. MD5 üzerinde çakışma saldırıları gösterildiği için parola, dijital imza veya sertifika gibi yerlerde kullanılmamalıdır. Sadece güvenlik gerektirmeyen, örneğin bir dosyanın kazara bozulup bozulmadığını hızlı kontrol etme gibi durumlarda görülebilir; yeni projelerde SHA-256 tercih edin.

Parola saklamak için hangi algoritmayı kullanmalıyım?

Düz SHA-256 bile parola saklamak için tek başına yeterli değildir çünkü çok hızlıdır. Bunun yerine kasıtlı olarak yavaş ve salt destekli algoritmalar kullanın: Argon2, bcrypt veya scrypt. Kendi şemanızı icat etmeyin, olgun kütüphanelere güvenin.

Hash ile şifreleme aynı şey mi?

Hayır. Şifreleme çift yönlüdür ve doğru anahtarla geri çözülür; amacı gizliliktir. Hashing tek yönlüdür, anahtar kullanmaz ve amacı bütünlük ile doğrulamadır. İkisini karıştırmak yaygın bir başlangıç hatasıdır.

📤 Bu Yazıyı Paylaş