SHA-256 Kontrol Toplamları Nedir ve Neden Kullanılır?
SHA-256 (Secure Hash Algorithm 256-bit), dosyaların ve verilerin bütünlüğünü doğrulamak için kullanılan bir kriptografik hash fonksiyonudur. Temel amacı, bir dosyanın herhangi bir şekilde değiştirilip değiştirilmediğini tespit etmektir. Örneğin:
- İndirilen dosyaların orijinal olup olmadığını kontrol etmek
- Yedekleme sistemlerinde veri bozulmalarını tespit etmek
- Dağıtım sistemlerinde dosya bütünlüğünü sağlamak
⚠️ Önemli: SHA-256, sadece veri bütünlüğü için kullanılır. Verilerin gizliliğini sağlamaz. Güvenlik gerektiren senaryolarda (örneğin şifreler) SHA-256 yerine özel algoritmalar tercih edilmelidir.
Temel Kullanım: Kontrol Toplamı Oluşturma
SHA-256 kontrol toplamı oluşturmak için sha256sum komutunu kullanabilirsiniz. Aşağıdaki adımları izleyerek dosyalarınızın hash değerlerini oluşturabilirsiniz:
Adım 1: Tek bir dosya için SHA-256 oluşturma
sha256sum dosya_adi.iso
Bu komut, belirtilen dosya için SHA-256 hash değerini ekrana yazdırır. Örnek çıktı:
a1b2c3d4e5f6... dosya_adi.iso
Adım 2: Birden fazla dosya için kontrol toplamı oluşturma
sha256sum dosya1.txt dosya2.txt
Her dosya için ayrı bir satırda hash değeri oluşturulur. Bu şekilde, birden fazla dosyanın bütünlüğünü aynı anda kontrol edebilirsiniz.
Adım 3: Kontrol toplamlarını bir dosyaya kaydetme
Özellikle birden fazla dosyanın bulunduğu durumlarda, kontrol toplamlarını bir dosyada saklamak faydalıdır. Bu sayede daha sonra bu dosyayı kullanarak tüm dosyaların bütünlüğünü doğrulayabilirsiniz.
sha256sum *.tar.gz > SHA256SUMS
Bu komut, tüm .tar.gz dosyaları için SHA-256 hash değerlerini oluşturur ve bunları SHA256SUMS adlı bir dosyaya yazar.
Adım 4: Metin verisinden doğrudan hash oluşturma
Bazen bir dosya yerine doğrudan bir metin verisinden hash oluşturmanız gerekebilir. Bu durumda printf komutunu kullanabilirsiniz:
printf '%s' "Merhaba Dünya" | sha256sum
Bu komut, "Merhaba Dünya" metninin SHA-256 hash değerini oluşturur.
Adım 5: Bir dizindeki tüm dosyaların hash değerlerini oluşturma
Belirli bir dizindeki tüm dosyaların hash değerlerini oluşturmak için find komutunu kullanabilirsiniz:
find dizin_adi/ -type f -exec sha256sum {} +
Bu komut, dizin_adi/ dizinindeki tüm dosyaların SHA-256 hash değerlerini oluşturur.
Kontrol Toplamlarını Doğrulama
SHA-256 kontrol toplamlarını doğrulamak, dosyaların orijinal halleriyle aynı olup olmadığını kontrol etmek anlamına gelir. Bu işlem için -c (check) seçeneğini kullanabilirsiniz.
Adım 1: Tüm dosyaları doğrulama
SHA256SUMS dosyasında listelenen tüm dosyaların bütünlüğünü doğrulamak için:
sha256sum -c SHA256SUMS
Bu komut, her bir dosyanın hash değerini SHA256SUMS dosyasındaki karşılığıyla karşılaştırır. Eğer bir dosya değiştirilmişse, hata mesajı görüntülenir.
Adım 2: Mevcut dosyaları doğrulama (eksik dosyaları atla)
Bazen SHA256SUMS dosyasında listelenen dosyalardan bazıları mevcut olmayabilir. Bu durumda, sadece mevcut olan dosyaları doğrulamak için --ignore-missing seçeneğini kullanabilirsiniz:
sha256sum -c --ignore-missing SHA256SUMS
Adım 3: Belirli bir dosyayı doğrulama
Büyük bir checksum listesinden sadece belirli bir dosyayı doğrulamak için:
grep dosya_adi.iso SHA256SUMS | sha256sum -c -
Bu komut, SHA256SUMS dosyasında dosya_adi.iso için olan satırı bulur ve sadece bu dosyanın bütünlüğünü doğrular.
Adım 4: Pano üzerinden kopyalanan hash değerini doğrulama
Başka bir kaynaktan kopyaladığınız bir hash değerini doğrulamak için:
echo "a1b2c3d4e5f6... dosya_adi.iso" | sha256sum -c -
Not: Hash değeri ve dosya adı arasında iki boşluk olduğunu unutmayın.
Adım 5: Sadece hataları gösterme
Doğrulama sırasında sadece hata mesajlarını görmek için --quiet seçeneğini kullanabilirsiniz:
sha256sum -c --quiet SHA256SUMS
Bu komut, sadece hata olan dosyalar için hata mesajı gösterir ve başarılı olan dosyalar için herhangi bir çıktı vermez.
Yaygın Kullanılan Seçenekler ve Açıklamaları
Aşağıdaki seçenekler, sha256sum komutunun yanı sıra md5sum ve diğer GNU hash araçları tarafından da desteklenmektedir:
| Seçenek | Açıklama |
|---|---|
-c, --check |
Bir dosyadan okunan hash değerlerini doğrular |
--quiet |
Doğrulanmış dosyalar için "OK" mesajını göstermez |
--status |
Çıktı vermez; sadece çıkış durumuyla rapor verir |
--warn |
Yanlış biçimlendirilmiş satırlar hakkında uyarır |
--strict |
Yanlış biçimlendirilmiş bir satır olduğunda sıfırdan farklı bir çıkış verir |
--ignore-missing |
Listede bulunan ancak mevcut olmayan dosyaları atlar |
--tag |
BSD tarzı çıktı verir (örneğin: SHA256 (dosya) = hash) |
-b, --binary |
Çıktıda dosya adlarının yanına * işareti ekler |
-z, --zero |
Çıktı satırlarını yeni satır yerine NUL karakteriyle sonlandırır |
Komut Dosyaları ve CI/CD Ortamlarında Kullanım
SHA-256 checksum doğrulamalarını otomatikleştirmek için komut dosyaları ve CI/CD pipeline'larında kullanabilirsiniz. Aşağıda bazı örnekler bulunmaktadır:
Örnek 1: Doğrulama sonucuna göre işlem yapma
sha256sum -c --status SHA256SUMS && echo "Doğrulama başarılı!" || echo "Doğrulama başarısız!"
Bu komut, doğrulama başarılıysa "Doğrulama başarılı!" mesajını, başarısızsa "Doğrulama başarısız!" mesajını ekrana yazdırır.
Örnek 2: Hata durumunda komut dosyasını sonlandırma
sha256sum -c SHA256SUMS || exit 1
Bu komut, doğrulama sırasında herhangi bir hata oluşursa komut dosyasını sonlandırır ve çıkış kodu 1 olarak ayarlar.
Örnek 3: İki dosyanın aynı olup olmadığını kontrol etme
[ "$(sha256sum < dosya1)" = "$(sha256sum < dosya2)" ] && echo "Dosyalar aynı" || echo "Dosyalar farklı"
Bu komut, iki dosyanın SHA-256 hash değerlerini karşılaştırır ve aynıysa "Dosyalar aynı", farklıysa "Dosyalar farklı" mesajını ekrana yazdırır.
Örnek 4: Sadece hash değerini çıkarma
sha256sum dosya | cut -d' ' -f1
Bu komut, dosya için oluşturulan SHA-256 hash değerini alır ve sadece hash değerini ekrana yazdırır.
Diğer Hash Komutları ve Farkları
sha256sum dışında farklı hash algoritmalarını kullanan komutlar da bulunmaktadır. Aşağıda bazı yaygın kullanılan hash komutları ve açıklamaları yer almaktadır:
| Komut | Açıklama |
|---|---|
md5sum dosya |
128-bit MD5 hash. Veri bozulmalarını tespit etmek için kullanılır, ancak güvenlik için önerilmez |
sha1sum dosya |
160-bit SHA-1 hash. Eski bir algoritma olup yeni kullanımlar için önerilmez |
sha512sum dosya |
512-bit SHA-2 hash. Daha uzun hash değeriyle daha güvenli bir seçenek |
b2sum dosya |
BLAKE2 hash. Hızlı ve modern bir alternatif |
cksum -a sha256 dosya |
Yeni coreutils paketinde bulunan birleşik hash aracı |
💡 İpucu: Güvenlik gerektiren senaryolarda (örneğin şifreler), SHA-256 yerine SHA-512 veya BLAKE2 gibi daha uzun hash değerleri üreten algoritmalar tercih edilmelidir.
Sık Karşılaşılan Sorunlar ve Çözümleri
Sorun 1: İndirilen dosyanın hash değeri eşleşmiyor
- Dosyayı farklı bir aynadan tekrar indirin.
- İndirme sırasında bağlantıda herhangi bir kesinti olup olmadığını kontrol edin.
- Dosyanın indirildiği kaynağın güvenilir olduğundan emin olun.
Sorun 2: no properly formatted checksum lines found hatası
Bu hata, SHA256SUMS dosyasının düzgün biçimlendirilmemiş olduğunu gösterir. Aşağıdaki adımları izleyin:
dos2unixaracını kullanarak dosyanın satır sonlarını düzeltin:dos2unix SHA256SUMS- Dosyanın UTF-8 formatında olduğundan emin olun.
Sorun 3: -c seçeneğiyle doğrulama yaparken "No such file or directory" hatası
Bu hata, sha256sum -c komutunu çalıştırdığınız dizinde, SHA256SUMS dosyasında listelenen dosyaların bulunmadığını gösterir. Çözüm:
cdkomutunu kullanarak, listelenen dosyaların bulunduğu dizine gidin.- Doğrulama komutunu tekrar çalıştırın.
Sorun 4: Her seferinde bazı dosyaların eksik olarak işaretlenmesi
Bu durum, SHA256SUMS dosyasındaki dosya yollarının, çalıştırdığınız dizine göre farklı olmasından kaynaklanır. Çözüm:
sha256sum -c --ignore-missing SHA256SUMS
Bu komut, listede bulunan ancak mevcut olmayan dosyaları atlar.
Sorun 5: Kontrol toplamı dosyasının güvenilirliği
Kontrol toplamı dosyasının kendisinin de güvenilir olduğundan emin olun. Bunun için:
- Kontrol toplamı dosyasının GPG imzasını doğrulayın.
- Güvenilir bir kaynaktan indirildiğinden emin olun.
İlgili Kılavuzlar ve Kaynaklar
Aşağıda, checksum kullanımı ve dosya imzalama konularında daha detaylı bilgiler içeren kılavuzlara bağlantılar bulunmaktadır:
| Kılavuz | Açıklama |
|---|---|
| Linuxize: SHA256SUM ve MD5SUM Komutları | sha256sum ve md5sum komutlarının detaylı kullanım kılavuzu |
| Linuxize: GPG ile Dosya Şifreleme ve Şifre Çözme | GPG anahtarları ve imzalarıyla çalışma rehberi |
| Linuxize: wget Komut Örnekleri | Dosyaları ve checksum listelerini indirme yöntemleri |
Sonuç
SHA-256 checksumları, dosyaların bütünlüğünü doğrulamak için güçlü ve güvenilir bir yöntemdir. Bu kılavuzda, checksum oluşturma, doğrulama ve otomatikleştirme konularında temel ve ileri düzey bilgiler sunduk. Bu bilgileri kullanarak, indirdiğiniz dosyaların orijinal halleriyle aynı olup olmadığını kolayca kontrol edebilir ve veri bütünlüğünü sağlayabilirsiniz.
Hatırlatma: Kontrol toplamı dosyalarını güvenilir kaynaklardan indirin ve mümkünse GPG imzalarıyla doğrulayın. Bu, checksum dosyalarının kendisinin de değiştirilmediğinden emin olmanızı sağlar.

