Menu
Coddy logo textTech

Checksum (Sağlama Toplamı) Nedir?

Checksum (sağlama toplamı), bir dosya ya da ağ paketi gibi bir veri bloğundan hesaplanan ve onunla birlikte saklanan veya gönderilen kısa bir değerdir. Daha sonra yeniden hesaplayıp iki değeri karşılaştırmak, verinin bozulma ya da iletim hatası yüzünden değişip değişmediğini gösterir.

Yazan Kevin Spektor, Kurucu ortak ve CTO

Güncellendi: 24 Eylül 2026

Sağlama toplamıGönderilenUlaşanSonuç
Bayt toplamı (mod 256)AAAAEşleşiyor
CRC-328B5C34C18B5C34C1Eşleşiyor

Bir biti çevir, iki sağlama toplamı da değişir. İki karakterin yerini değiştir: baytların hepsi hâlâ yerindedir, yani toplamları aynı kalır. Bunu yalnızca sıraya bağlı olan CRC-32 fark eder.

Ubuntu ve Debian gibi Linux dağıtımları, kurulum imajlarının yanında SHA256SUMS adlı bir dosya yayınlar. Her satırda 64 karakterlik bir string ve bir dosya adı vardır. İndirmen bittikten sonra aldığın dosya üzerinde tek bir komut çalıştırırsın. Aynı string'i yazdırıyorsa dosyanın milyarlarca byte'ının hepsi sağlam gelmiştir. Yolda tek bir bit bile değiştiyse string tamamen farklı çıkar.

O string bir checksum'dır: veri değiştiğinde değişen küçük bir özet.

Checksum adım adım nasıl çalışır

  1. Gönderen, veri üzerinde byte byte bir checksum algoritması çalıştırır ve kısa bir sonuç elde eder.
  2. Sonuç veriyle birlikte yolculuk eder ya da saklanır: bir ağ paketinin başlığında, bir ZIP dosyası içinde her sıkıştırılmış dosyanın yanında ya da bir indirme sayfasında.
  3. Alıcı aynı algoritmayı gerçekten aldığı veri üzerinde çalıştırır.
  4. İki sonuç karşılaştırılır. Eşitlerse veri neredeyse kesinlikle değişmemiştir. Farklılarsa veri hasar görmüştür ve alıcı onu reddeder, yeniden ister ya da bir checksum hatası gösterir.

Checksum yalnızca hasarı tespit eder; hangi byte'ın değiştiğini söyleyemez, onu onaramaz da. Onarım için CD'lerde ve QR kodlarda kullanılan Reed-Solomon kodları gibi bir hata düzeltme kodu gerekir.

En basit checksum tüm byte'ları toplar ve toplamın son 8 bitini tutar. Bu fikrin nerede işe yarayıp nerede başarısız olduğunu görmek için şunu çalıştır:

original  sum= 78  crc32=a1628836
flipped   sum= 80  crc32=a597580b
swapped   sum= 78  crc32=59dbf74b

Bir karakteri değiştirmek toplamı değiştirir. İki karakterin yerini değiştirmek ise değiştirmez, çünkü toplama sıraya bakmaz; bu yüzden byte toplamı 100 yerine 10'luk bir ödemeyi onaylar. CRC-32 (döngüsel artıklık denetimi, cyclic redundancy check) veriyi uzun tek bir ikili sayı olarak ele alır ve onu sabit 33 bitlik bir polinoma böler; 32 bitlik kalan her bitin nerede durduğuna bağlıdır, bu yüzden yer değiştirme yakalanır. Yukarıdaki demo bunu kendi metninle denemeni sağlar. CRC-32, 32 bite kadar uzunluktaki her hata patlamasını yakalar.

Yaygın checksum algoritmaları

AlgoritmaBoyutNerede karşına çıkar
Eşlik biti (parity bit)1 bitSeri bağlantılar, eşlikli bellek
Luhn kontrol basamağı1 basamakKredi kartı numaraları, IMEI numaraları
İnternet checksum'ı16 bitIPv4, TCP ve UDP başlıkları
Adler-3232 bitzlib sıkıştırma formatı
CRC-3232 bitZIP, gzip, PNG, Ethernet çerçeveleri
MD5128 bitEski indirme sayfaları, kopya dosya bulucular
SHA-256256 bitYazılım indirmeleri, Linux imajları, Bitcoin

İlk beşi saldırganları değil, kazaları yakalar. Bir dosyayı düzenleyen biri, CRC-32 yeniden eşleşsin diye birkaç byte'ı ayarlayabilir. MD5 ve SHA-256 kriptografik hash fonksiyonlarıdır; aynı çıktıyı veren iki girdi bulmak pratikte imkansız olsun diye tasarlanmışlardır. MD5 o zamandan beri kırıldı (çakışmalar 2004'te yayınlandı), SHA-1 de öyle (2017); bu yüzden güvenliğin önemli olduğu indirmeler SHA-256 ya da daha güçlüsünü kullanır. MD5 kazara bozulmayı yine de gayet iyi yakalar.

Checksum nasıl doğrulanır

Kendi bilgisayarında her işletim sisteminin yerleşik bir komutu vardır:

# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso

Çıktıyı resmi indirme sayfasındaki değerle karşılaştır; büyük ya da küçük harf fark etmez. Python'da hashlib aynı kontrolü yapar ve dosyayı parça parça okur; böylece 6 GB'lık bir dosyanın belleğe sığması hiç gerekmez:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK

hello world ifadesini hello World yap ve tekrar çalıştır: checksum'ın her karakteri değişir ve son satır Checksum mismatch der.

Checksum hatası nedir?

Checksum hatası kontrolün başarısız olduğu anlamına gelir: elindeki veriden hesaplanan değer, onunla birlikte saklanan ya da gönderilen değerle eşleşmiyor. Ya veri değişmiştir ya da saklanan checksum hasar görmüştür. Mesaj ve çözüm, hatanın nerede göründüğüne bağlıdır.

Açılışta CMOS ya da BIOS checksum hatası

Bir PC'nin firmware'i (BIOS ya da UEFI), önyükleme sırası ve saat gibi ayarlarını, bilgisayarın fişi çekiliyken genellikle bir CR2032 olan düğme pilin canlı tuttuğu küçük bir bellekte saklar. Bu ayarların bir checksum'ı onların yanında saklanır. Firmware her açılışta onu yeniden hesaplar; değerler farklıysa CMOS Checksum Error - Defaults Loaded gibi bir mesaj gösterir ve fabrika ayarlarına döner.

Olağan neden zayıf ya da bitmiş bir pildir, özellikle saat de sıfırlanıyorsa. Ayarlar kaydedilirken olan bir elektrik kesintisi ya da CMOS'u bir jumper ile temizlemek de aynı etkiyi yapar. Düzeltmek için:

  1. Ayar ekranını aç (genellikle PC açılırken Delete ya da F2), tarihi, saati ve değiştirdiğin ayarları gir, sonra kaydedip çık (çoğu zaman F10). Mesaj geri gelmiyorsa tek seferlik bir olaydı.
  2. Her soğuk açılıştan sonra geri geliyorsa bilgisayarı kapat, fişini çek ve CR2032 pili değiştir.
  3. Mesaj firmware'in kendisinden bahsediyorsa, örneğin BIOS ROM checksum error ya da Main BIOS checksum error, firmware imajı hasar görmüştür. Yedek BIOS çipi olan anakartlar onu otomatik geri yükler; diğerlerinde anakartın BIOS kurtarma özelliğini kullan ya da firmware'i üreticinin sitesinden yeniden yükle ve güncelleme sırasında elektriği kesme.

İndirmeden sonra checksum mismatch

Dosyanın SHA-256 değeri indirme sayfasındakiyle eşleşmiyor. Dosya eksik ya da bozuk olabilir (kesilen bir bağlantı, dolu bir disk), farklı bir dosyanın checksum'ıyla karşılaştırıyor olabilirsin (başka bir sürüm ya da işlemci mimarisi) ya da iki farklı algoritmayı karşılaştırıyor olabilirsin: bir MD5 değeri 32, bir SHA-256 değeri 64 hex karakterdir. Nadiren dosya kasıtlı olarak değiştirilmiştir.

Algoritmayı ve dosya adını kontrol et, sonra dosyayı resmi siteden yeniden indir. Resmi kaynaktan alınan yeni bir kopya da eşleşmiyorsa onu çalıştırma. Paket yöneticileri bu kontrolü senin yerine yapar: indirilen bir paket sabitlenmiş hash'ten farklıysa pip THESE PACKAGES DO NOT MATCH THE HASHES ile durur.

ZIP, RAR ya da 7z arşivinde checksum hatası

Arşiv formatları her dosyanın orijinal içeriğinin bir CRC-32'sini saklar. Arşivi açtığında araç onu yeniden hesaplar; WinRAR bir uyuşmazlığı Checksum error, 7-Zip ise CRC Failed olarak bildirir. Şifreli bir arşivde yanlış şifre aynı mesajı üretir, çünkü yanlış şifreyle çözülen veri anlamsız çıkar. Arşivi yeniden indir, bölünmüş bir arşivin her parçasının (.part1.rar, .part2.rar) mevcut ve aynı yüklemeden olduğundan emin ol ve şifreyi yeniden yaz. WinRAR'ın Repair archive komutu en iyi, kurtarma kaydıyla (recovery record) oluşturulmuş arşivlerde çalışır; "Keep broken files" seçeneği ise doğru şekilde çıkarılan her şeyi kaydeder.

Oyunlarda ve ağ araçlarında checksum hataları

Oyunlar dosyalarının checksum'larını karşılaştırır; bu yüzden yarım kalmış bir güncelleme ya da değiştirilmiş bir dosya kontrolden geçemez. Steam'de "Oyun dosyalarının bütünlüğünü doğrula" (Verify integrity of game files), checksum'ı eşleşmeyen her dosyayı yeniden indirir. Wireshark'ta kendi bilgisayarının gönderdiği paketlerdeki checksum uyarıları genellikle gerçek hata değildir: ağ kartı checksum'ı, Wireshark paketi yakaladıktan sonra doldurur.

Yaygın yanlış bilinenler

  • "Eşleşen bir checksum dosyanın güvenli olduğunu kanıtlar." Dosyanın yayınlanan değerle eşleştiğini kanıtlar. Bir saldırgan web sitesini kontrol ediyorsa ikisini birden değiştirebilir; projelerin checksum dosyalarını ayrıca bir anahtarla imzalamasının nedeni budur.
  • "Checksum bozuk bir dosyayı düzeltebilir." Yalnızca hasarı tespit eder. Çözüm sağlam bir kopya edinmektir.
  • "Checksum ve hash farklı şeylerdir." Checksum işi anlatır; SHA-256 gibi bir hash fonksiyonu o işi yapabilen araçlardan biridir.

Sırada ne var

Herhangi bir metnin MD5, SHA-1 ve SHA-256 değerlerini hash üreticide hesapla. Checksum'lar ham veri üzerinde çalışır; bu yüzden byte nedir ve bit nedir sayfaları gerçekte neyin toplandığını açıklar. Bir veritabanı disk bozulmalarını yakalamak için sayfa checksum'ları kullanır; hash tablosu görselleştirmesi ise veriden hesaplanan kısa bir değerin başka bir kullanımını gösterir.

Sıkça Sorulan Sorular

SHA-256 bir checksum mıdır?
Evet, veriyi doğrulamak için kullanıldığında. SHA-256 kriptografik bir hash fonksiyonudur ve bir dosya için ürettiği 64 karakterlik değere yaygın olarak o dosyanın SHA-256 checksum'ı denir. CRC-32'den yavaştır ama kasıtlı değişikliklere karşı da korur, çünkü aynı SHA-256 değerine sahip farklı bir dosya üretmek pratikte kimse için mümkün değildir.
Checksum hatası nasıl düzeltilir?
Nerede göründüğüne bağlıdır. Açılışta BIOS ayarlarını aç, tarihi ve ayarları kontrol et, kaydedip çık; hata geri gelirse CMOS düğme pilini değiştir. Bir indirmeden sonra ya da bir arşivde dosyayı resmi kaynaktan yeniden indir, bölünmüş bir arşivin her parçasının mevcut olduğundan ve şifrenin doğru olduğundan emin ol.
Checksum hatasına ne sebep olur?
Veri, checksum'ının hesaplandığı an ile kontrol edildiği an arasında değişmiştir. Yaygın nedenler yarıda kesilen bir indirme, arızalanan bir disk ya da USB bellek, zayıf bir CMOS pili, ayarlar ya da firmware yazılırken olan bir elektrik kesintisi ve şifreli bir arşivde yanlış şifredir.
Checksum neden gereklidir?
Depolama ve ağlar kusursuz değildir. Bitler elektriksel gürültü, radyo parazitleri, yıpranmış flash bellek ya da arızalanan diskler yüzünden değişir; bir kontrol olmadan bozuk veri sessizce kullanılırdı. Checksum, hasarı fark etmenin ucuz bir yoludur; böylece veri yeniden gönderilebilir ya da reddedilebilir.
Checksum nasıl oluşturulur?
Veri üzerinde bir checksum algoritması çalıştır. Bir dosya için Linux'ta sha256sum file, macOS'ta shasum -a 256 file, Windows PowerShell'de Get-FileHash file kullan. Python'da hashlib.sha256(data).hexdigest() bir SHA-256 checksum, zlib.crc32(data) ise bir CRC-32 verir.
Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA