SHA ve MD5 Karmaları ile Dosya Bütünlüğü Nasıl Doğrulanır — Kapsamlı Rehber
Hash Fonksiyonu Nedir?
Bir hash fonksiyonu, herhangi bir boyuttaki girdiyi (bir dosya, bir metin, bir parola) alır ve hash, özet veya sağlama toplamı adı verilen sabit uzunlukta bir karakter dizisi üretir. Aynı girdi her zaman aynı çıktıyı üretir, ancak girdideki tek bir bitlik değişiklik bile tamamen farklı bir hash üretir. Bu, hash'leri bir dosyanın tam olarak yayıncının amaçladığı gibi olduğunu (ne eksik ne fazla) doğrulamak için ideal kılar.
Hash alma tek yönlü bir işlemdir: orijinal dosyayı hash değerinden yeniden oluşturamazsınız, bu da onu hem bütünlük kontrolleri hem de güvenli parola saklama için kullanışlı kılar (ancak aşağıda belirtildiği gibi, parolalar için tek başına ham hash alma yeterli değildir).
Hash ile Dosya Bütünlüğü Neden Doğrulanır?
Özellikle yansılardan, torrentlerden veya üçüncü taraf sitelerden yazılım indirdiğinizde, dosya iki şekilde değiştirilmiş olabilir:
- Kazara bozulma — kesintiye uğramış bir indirme, kötü bir ağ bağlantısı veya hatalı bir depolama ortamı, baytları sessizce bozabilir.
- Kötü niyetli müdahale — bir saldırgan indirmeyi engeller ve dosyayı kötü amaçlı yazılım içeren değiştirilmiş bir sürümle değiştirir.
Ciddi yazılımların (Linux dağıtımları, güvenlik araçları, açık kaynak projeleri) yayıncıları, indirme bağlantısının yanında her sürüm dosyasının resmi hash değerini yayınlar. Yerel olarak hesapladığınız hash, yayınlananla eşleşirse, dosyanın sağlam ve değiştirilmemiş olarak geldiğinden emin olabilirsiniz.
MD5 vs SHA-1 vs SHA-256 vs SHA-512 — Farkları Nedir?
Tüm hash algoritmaları eşit değildir ve doğru olanı seçmek önemlidir:
| Algoritma | Çıktı Uzunluğu | Durum |
|---|---|---|
| MD5 | 32 hex karakter (128 bit) | Kriptografik olarak kırılmıştır — güvenlik için kaçının |
| SHA-1 | 40 hex karakter (160 bit) | Ayrıca kırılmıştır — güvenlik kullanımı için kullanımdan kaldırılmıştır |
| SHA-256 | 64 hex karakter (256 bit) | Mevcut endüstri standardı |
| SHA-512 | 128 hex karakter (512 bit) | Daha güçlü, biraz daha yavaş, ekstra güvenlik payı istendiğinde kullanılır |
MD5 ve SHA-1, çakışmaların kasıtlı ve karmaşık bir çaba gerektirmesi nedeniyle basit dosya bütünlüğü kontrolleri (kazara bozulmayı yakalama) için hala yaygın olarak kullanılmaktadır — ancak kötü niyetli bir aktöre karşı güvenliğin önemli olduğu durumlarda hiçbirine güvenilmemelidir. Güvenlik bilincine sahip bir kaynak tarafından yayınlanan bir sağlama toplamına karşı bir dosyayı doğruluyorsanız, sunulduğunda SHA-256'yı tercih edin.
Dosya Doğrulama için Hash Nasıl Oluşturulur
Komut satırına dokunmadan bir hash'i kontrol etmenin en kolay yolu, ilgili metni (veya dosyanın beklenen sağlama toplamını) tarayıcı tabanlı bir araca yapıştırmaktır. Hash Oluşturucu, MD5, SHA-1, SHA-256, SHA-384 ve SHA-512 hash'lerini tamamen tarayıcınızın içinde anında hesaplar — hiçbir şey bir sunucuya yüklenmez; bu, hash'ini aldığınız içerik hassassa önemlidir.
Metin yerine gerçek dosya içeriğinin hash'ini almanız gerekiyorsa, hash'i oluşturmak için işletim sisteminizin yerleşik aracını (aşağıda) kullanın, ardından ortaya çıkan hash dizesini, dosyanın kaynağı tarafından yayınlananla karşılaştırmak için Hash Oluşturucu'ya veya bir metin karşılaştırma aracına yapıştırın.
Windows'ta Bir Dosyanın Hash'i Nasıl Kontrol Edilir
Windows, ekstra bir şey yüklemeden hash hesaplayabilen certutil adlı yerleşik bir yardımcı program içerir:
certutil -hashfile "C:\\yol\\dosya.exe" SHA256
Yayıncının sağladığı algoritmaya bağlı olarak SHA256 yerine MD5, SHA1 veya SHA512 yazın. Komut, hash'i doğrudan terminalde döndürür — resmi değerle karakter karakter karşılaştırın.
macOS ve Linux'ta Bir Dosyanın Hash'i Nasıl Kontrol Edilir
macOS ve Linux'un her ikisi de özel hash alma komutlarıyla birlikte gelir:
shasum -a 256 /yol/dosya
md5 /yol/dosya # macOS
md5sum /yol/dosya # Linux
-a 256 bayrağı, shasum'a SHA-256 kullanmasını söyler; diğer algoritmalar için 1, 384 veya 512 koyabilirsiniz. Linux'ta sha256sum, sha1sum ve sha512sum bağımsız komutlar olarak da mevcuttur.
Adım Adım: İndirilen Bir Dosyayı Doğrulama
- Dosyanın kaynağı tarafından yayınlanan resmi sağlama toplamını bulun — genellikle indirme sayfasında veya ayrı bir
.sha256/checksums.txtdosyasında bulunur. - İndirilen dosya üzerinde işletim sisteminiz için uygun hash alma komutunu çalıştırın (yukarıya bakın).
- Elde edilen hash'i yayınlananla karakter karakter karşılaştırın. Tek bir farklı karakter bile dosyanın eşleşmediği anlamına gelir.
- Hash'ler eşleşirse, dosya sağlamdır ve yayıncının yayınladığıyla aynıdır. Eşleşmezlerse, dosyayı silin ve güvenilir bir kaynaktan yeniden indirin — çalıştırmayın.
Sağlama Toplamı (Checksum) Nedir?
Sağlama toplamı, özellikle verilerin değişmediğini doğrulamak için kullanılan bir hash değeridir — terimler dosya indirmeleri bağlamında sıklıkla birbirinin yerine kullanılır. Yazılım dağıtıcıları, kullanıcıların yukarıdaki doğrulama adımlarını, işletim sistemlerinde zaten yerleşik olan araçlar veya tarayıcı tabanlı bir hash oluşturucu dışında özel bir araca ihtiyaç duymadan gerçekleştirebilmeleri için tam olarak sağlama toplamları (günümüzde genellikle SHA-256) yayınlarlar.
Hash Alma Tersine Çevrilebilir mi?
Hayır. Düzgün tasarlanmış bir kriptografik hash fonksiyonu tek yönlü bir işlemdir — yalnızca hash değerinden orijinal girdiyi kurtarmanın matematiksel bir yolu yoktur. Bu kasıtlıdır ve hash'leri hem bütünlük doğrulama hem de güvenli kimlik bilgisi saklama için kullanışlı kılan tam olarak budur.
Hash Çakışması Nedir?
İki farklı girdi aynı hash çıktısını ürettiğinde bir çakışma meydana gelir. Her hash fonksiyonu teknik olarak çakışmaların matematiksel olarak var olmasına izin verir (çünkü girdiler sonsuzdur ve çıktılar sabit uzunluktadır), ancak güvenli bir algoritma bir tane bulmayı hesaplama açısından olanaksız hale getirir. MD5 ve SHA-1'in her ikisinde de pratik çakışma saldırıları gösterilmiştir, bu nedenle güvenlik uzmanları artık onları kazara bozulmaya karşı sıradan bütünlük kontrollerinin ötesinde hiçbir şey için güvenli kabul etmemektedir.
Parolalar için Hash Kullanabilir miyim?
Ham SHA-256 veya SHA-512, parolaları doğrudan saklamak için asla kullanılmamalıdır, çünkü bu algoritmalar hızlı olacak şekilde tasarlanmıştır — bu da saldırganların modern donanım kullanarak büyük ölçekte kaba kuvvet saldırısı yapmasını kolaylaştırır. Parolalar için, gökkuşağı tablosu saldırılarına karşı savunmak amacıyla kasıtlı olarak yavaş olan ve yerleşik tuzlama içeren bcrypt, argon2 veya PBKDF2 gibi özel olarak oluşturulmuş bir algoritma kullanın.
Tuzlama (Salting) Nedir?
Tuzlama, hash almadan önce her girdiye benzersiz bir rastgele değer eklemek anlamına gelir, böylece aynı girdiler (aynı parolaya sahip iki kullanıcı gibi) bile farklı hash'ler üretir. Bu, önceden hesaplanmış gökkuşağı tablosu saldırılarını boşa çıkarır, çünkü bir saldırganın tek bir evrensel tablo yerine her olası tuz değeri için ayrı bir tabloya ihtiyacı olacaktır.
HMAC Nedir?
HMAC (Hash Tabanlı Mesaj Doğrulama Kodu), bir mesajın hem bütünlüğünü hem de gerçekliğini doğrulamak için bir hash fonksiyonunu gizli bir anahtarla birleştirir — yalnızca verilerin değiştirilmediğini değil, aynı zamanda gizli anahtarı elinde bulunduran birinden geldiğini de onaylar. Bir sunucunun, bir isteğin meşru bir istemciden geldiğini ve aktarım sırasında kurcalanmadığını doğrulaması gereken API kimlik doğrulamasında yaygın olarak kullanılır.
Hızlı Başvuru: Hangi Hash'i Kullanmalısınız?
- İndirilen bir dosyayı yayıncının sağlama toplamına göre doğrulama → yayıncı ne sağlıyorsa onu kullanın; birden fazla seçenek listelenmişse SHA-256'yı tercih edin.
- Yinelenen dosyaları veya içeriği tespit etme → güvenlik burada endişe konusu olmadığı için MD5 veya SHA-256 ikisi de iyi çalışır.
- Parolaları saklama → asla ham SHA/MD5 kullanmayın; bcrypt, argon2 veya PBKDF2 kullanın.
- API isteği gerçekliğini doğrulama → SHA-256 ile HMAC.
Sonuç
Hash doğrulaması saniyeler sürer ve sizi bozuk veya kötü amaçlı yazılım çalıştırmaktan kurtarabilir. İster işletim sisteminizin yerleşik komut satırı araçlarını ister hızlı bir tarayıcı tabanlı seçeneği kullanın, süreç aynıdır: hash'i oluşturun, resmi olanla karşılaştırın ve yalnızca tam olarak eşleşirlerse devam edin. MD5, SHA-1, SHA-256, SHA-384 ve SHA-512 hash'lerini anında hesaplamak için ücretsiz Hash Oluşturucu'yu deneyin — her şey tarayıcınızda yerel olarak çalışır, böylece hash'ini aldığınız hiçbir şey cihazınızdan asla ayrılmaz.