Menu
Coddy logo textTech

Co to jest suma kontrolna?

Suma kontrolna (checksum) to krótka wartość obliczana z bloku danych, na przykład pliku albo pakietu sieciowego, i zapisywana lub wysyłana razem z nim. Ponowne obliczenie jej później i porównanie obu wartości pokazuje, czy dane zmieniły się przez uszkodzenie albo błąd transmisji.

Autor: Kevin Spektor, Współzałożyciel i CTO

Aktualizacja: 24 września 2026

Suma kontrolnaWysłanoOtrzymanoWynik
Suma bajtów (mod 256)9E9EZgodne
CRC-3292823EA192823EA1Zgodne

Odwróć jeden bit, a obie sumy kontrolne się zmienią. Zamień dwa znaki, a wszystkie bajty nadal są na miejscu, więc ich suma jest taka sama: zauważy to tylko CRC-32, które zależy od kolejności.

Dystrybucje Linuksa, takie jak Ubuntu i Debian, publikują obok obrazów instalacyjnych plik o nazwie SHA256SUMS. Każda linia zawiera 64-znakowy ciąg i nazwę pliku. Po zakończeniu pobierania uruchamiasz jedno polecenie na otrzymanym pliku. Jeśli wypisze ten sam ciąg, wszystkie miliardy bajtów dotarły nienaruszone. Jeśli po drodze odwrócił się choćby jeden bit, ciąg wychodzi zupełnie inny.

Ten ciąg to suma kontrolna: małe podsumowanie, które zmienia się, gdy zmieniają się dane.

Jak działa suma kontrolna krok po kroku

  1. Nadawca uruchamia algorytm sumy kontrolnej na danych, bajt po bajcie, i dostaje krótki wynik.
  2. Wynik podróżuje albo jest przechowywany razem z danymi: w nagłówku pakietu sieciowego, w pliku ZIP obok każdego skompresowanego pliku albo na stronie pobierania.
  3. Odbiorca uruchamia ten sam algorytm na danych, które faktycznie dostał.
  4. Oba wyniki są porównywane. Jeśli są równe, dane niemal na pewno się nie zmieniły. Jeśli się różnią, dane zostały uszkodzone, a odbiorca je odrzuca, prosi o nie ponownie albo pokazuje błąd sumy kontrolnej.

Suma kontrolna tylko wykrywa uszkodzenie; nie powie, który bajt się zmienił, i go nie naprawi. Do naprawy potrzebny jest kod korekcji błędów, taki jak kody Reeda-Solomona na płytach CD i w kodach QR.

Najprostsza suma kontrolna dodaje wszystkie bajty i zachowuje ostatnie 8 bitów wyniku. Uruchom ten kod, żeby zobaczyć, gdzie ten pomysł działa, a gdzie zawodzi:

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

Zmiana znaku zmienia sumę. Zamiana dwóch znaków miejscami już nie, bo dodawanie nie zwraca uwagi na kolejność, więc suma bajtów zatwierdza płatność 10 zamiast 100. CRC-32 (cykliczny kod nadmiarowy) traktuje dane jak jedną długą liczbę dwójkową i dzieli ją przez stały 33-bitowy wielomian; 32-bitowa reszta zależy od położenia każdego bitu, więc zamiana zostaje wykryta. Demo powyżej pozwala wypróbować to na własnym tekście. CRC-32 wykrywa każdą serię błędów o długości do 32 bitów.

Popularne algorytmy sum kontrolnych

AlgorytmRozmiarGdzie go spotkasz
Bit parzystości1 bitPołączenia szeregowe, pamięć z kontrolą parzystości
Cyfra kontrolna Luhna1 cyfraNumery kart płatniczych, numery IMEI
Suma kontrolna internetu16 bitówNagłówki IPv4, TCP i UDP
Adler-3232 bityFormat kompresji zlib
CRC-3232 bityZIP, gzip, PNG, ramki Ethernet
MD5128 bitówStarsze strony pobierania, wyszukiwarki duplikatów plików
SHA-256256 bitówPobieranie oprogramowania, obrazy Linuksa, Bitcoin

Pierwszych pięć wykrywa przypadkowe błędy, nie ataki. Ktoś, kto edytuje plik, może dopasować kilka bajtów tak, żeby jego CRC-32 znowu się zgadzało. MD5 i SHA-256 to kryptograficzne funkcje skrótu, zaprojektowane tak, żeby znalezienie dwóch danych wejściowych o tym samym wyniku było niewykonalne w praktyce. MD5 zostało jednak złamane (kolizje opublikowano w 2004 roku), podobnie jak SHA-1 (2017), więc przy pobieraniu, gdzie liczy się bezpieczeństwo, używa się SHA-256 albo silniejszych algorytmów. MD5 nadal świetnie wyłapuje przypadkowe uszkodzenia.

Jak sprawdzić sumę kontrolną

Na twoim komputerze każdy system operacyjny ma wbudowane polecenie:

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

Porównaj wynik z wartością na oficjalnej stronie pobierania; wielkie i małe litery nie mają znaczenia. W Pythonie to samo sprawdzenie robi hashlib, czytając plik po kawałku, więc plik 6 GB nigdy nie musi zmieścić się w pamięci:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK

Zmień hello world na hello World i uruchom kod jeszcze raz: zmieni się każdy znak sumy kontrolnej, a ostatnia linia pokaże Checksum mismatch.

Co oznacza błąd sumy kontrolnej?

Błąd sumy kontrolnej (checksum error) oznacza, że sprawdzenie się nie powiodło: wartość obliczona z danych, które masz, nie zgadza się z wartością zapisaną lub wysłaną razem z nimi. Albo zmieniły się dane, albo uszkodzona jest zapisana suma kontrolna. Komunikat i sposób naprawy zależą od miejsca, w którym błąd się pojawia.

Błąd sumy kontrolnej CMOS lub BIOS przy starcie

Firmware komputera (BIOS lub UEFI) przechowuje swoje ustawienia, takie jak kolejność rozruchu i zegar, w małej pamięci podtrzymywanej przez baterię w kształcie pastylki, zwykle CR2032, gdy komputer jest odłączony od prądu. Obok ustawień zapisana jest ich suma kontrolna. Przy każdym starcie firmware oblicza ją od nowa, a jeśli wartości się różnią, pokazuje komunikat taki jak CMOS Checksum Error - Defaults Loaded i wraca do ustawień fabrycznych.

Najczęstszą przyczyną jest słaba lub rozładowana bateria, zwłaszcza gdy zegar też się resetuje. Zanik zasilania podczas zapisywania ustawień albo wyczyszczenie CMOS zworką daje ten sam efekt. Jak to naprawić:

  1. Otwórz ekran ustawień (zwykle Delete albo F2 podczas uruchamiania komputera), ustaw datę, godzinę i wszystkie zmienione wcześniej ustawienia, a potem zapisz i wyjdź (często F10). Jeśli komunikat się nie powtarza, było to jednorazowe zdarzenie.
  2. Jeśli wraca po każdym zimnym starcie, wyłącz komputer, odłącz go od prądu i wymień baterię CR2032.
  3. Jeśli komunikat wskazuje na sam firmware, na przykład BIOS ROM checksum error albo Main BIOS checksum error, obraz firmware'u jest uszkodzony. Płyty z zapasowym układem BIOS przywracają go automatycznie; w pozostałych użyj funkcji odzyskiwania BIOS-u na płycie albo wgraj firmware ponownie ze strony producenta, nie odcinając zasilania w trakcie aktualizacji.

Niezgodność sumy kontrolnej po pobraniu pliku

SHA-256 twojego pliku nie zgadza się z wartością na stronie pobierania. Plik może być niekompletny albo uszkodzony (przerwane połączenie, pełny dysk), możesz porównywać go z sumą kontrolną innego pliku (innej wersji albo architektury procesora) albo porównujesz dwa różne algorytmy: wartość MD5 ma 32 znaki szesnastkowe, a wartość SHA-256 ma ich 64. Rzadko zdarza się, że plik został podmieniony.

Sprawdź algorytm i nazwę pliku, a potem pobierz plik jeszcze raz z oficjalnej strony. Jeśli świeża kopia z oficjalnego źródła nadal się nie zgadza, nie uruchamiaj jej. Menedżery pakietów robią to sprawdzenie za ciebie: pip zatrzymuje się z komunikatem THESE PACKAGES DO NOT MATCH THE HASHES, gdy pobrany pakiet różni się od przypiętego skrótu.

Błąd sumy kontrolnej w archiwum ZIP, RAR lub 7z

Formaty archiwów przechowują CRC-32 oryginalnej zawartości każdego pliku. Przy rozpakowywaniu narzędzie oblicza ją ponownie; WinRAR zgłasza niezgodność jako Checksum error, a 7-Zip jako CRC Failed. W zaszyfrowanym archiwum złe hasło daje ten sam komunikat, bo złe hasło odszyfrowuje dane do postaci śmieci. Pobierz archiwum jeszcze raz, upewnij się, że masz każdą część archiwum dzielonego (.part1.rar, .part2.rar) i że wszystkie pochodzą z tego samego wysłania, a potem wpisz hasło ponownie. Polecenie Repair archive w WinRAR działa najlepiej na archiwach utworzonych z rekordem odzyskiwania, a opcja "Keep broken files" zachowuje wszystko, co udało się poprawnie rozpakować.

Błędy sumy kontrolnej w grach i narzędziach sieciowych

Gry porównują sumy kontrolne swoich plików, więc częściowa aktualizacja albo zmieniony plik nie przechodzą sprawdzenia. W Steamie opcja "Verify integrity of game files" pobiera ponownie każdy plik, którego suma kontrolna się nie zgadza. W Wiresharku ostrzeżenia o sumach kontrolnych w pakietach wysyłanych przez twój własny komputer zwykle nie są prawdziwymi błędami: karta sieciowa uzupełnia sumę kontrolną dopiero po tym, jak Wireshark przechwycił pakiet.

Częste nieporozumienia

  • "Zgodna suma kontrolna dowodzi, że plik jest bezpieczny." Dowodzi, że plik zgadza się z opublikowaną wartością. Jeśli atakujący kontroluje stronę, może zmienić jedno i drugie, dlatego projekty dodatkowo podpisują swoje pliki z sumami kontrolnymi kluczem.
  • "Suma kontrolna może naprawić uszkodzony plik." Ona tylko wykrywa uszkodzenie. Naprawą jest zdobycie dobrej kopii.
  • "Suma kontrolna i skrót (hash) to różne rzeczy." Suma kontrolna to nazwa zadania, a funkcja skrótu taka jak SHA-256 to jedno z narzędzi, które je wykonują.

Co dalej

Wartości MD5, SHA-1 i SHA-256 dowolnego tekstu obliczysz w generatorze hashy. Sumy kontrolne działają na surowych danych, więc strony co to jest bajt i co to jest bit wyjaśniają, co właściwie jest sumowane. Baza danych używa sum kontrolnych stron, żeby wykrywać uszkodzenia dysku, a wizualizacja tablicy mieszającej pokazuje inne zastosowanie krótkiej wartości obliczanej z danych.

Najczęściej zadawane pytania

Czy SHA-256 to suma kontrolna?
Tak, gdy służy do weryfikacji danych. SHA-256 to kryptograficzna funkcja skrótu, a 64-znakową wartość, którą daje dla pliku, powszechnie nazywa się sumą kontrolną SHA-256 tego pliku. Jest wolniejsza niż CRC-32, ale chroni też przed celowymi zmianami, bo w praktyce nikt nie jest w stanie zbudować innego pliku o tej samej wartości SHA-256.
Jak naprawić błąd sumy kontrolnej?
To zależy od tego, gdzie się pojawia. Przy starcie komputera otwórz ustawienia BIOS, sprawdź datę i ustawienia, zapisz i wyjdź, a jeśli błąd wraca, wymień baterię CMOS (pastylkę). Po pobraniu pliku albo w archiwum pobierz plik jeszcze raz z oficjalnego źródła i upewnij się, że masz wszystkie części archiwum dzielonego, a hasło jest poprawne.
Co powoduje błąd sumy kontrolnej?
Dane zmieniły się między chwilą, w której obliczono ich sumę kontrolną, a chwilą, w której ją sprawdzono. Częste przyczyny to przerwane pobieranie, psujący się dysk albo pendrive, słaba bateria CMOS, zanik zasilania podczas zapisu ustawień lub firmware'u oraz złe hasło do zaszyfrowanego archiwum.
Po co potrzebna jest suma kontrolna?
Nośniki danych i sieci nie są doskonałe. Bity odwracają się przez szum elektryczny, zakłócenia radiowe, zużytą pamięć flash albo psujące się dyski, a bez sprawdzenia uszkodzone dane zostałyby po cichu użyte. Suma kontrolna to tani sposób na zauważenie uszkodzenia, żeby dane można było wysłać ponownie albo odrzucić.
Jak wygenerować sumę kontrolną?
Uruchom algorytm sumy kontrolnej na danych. Dla pliku użyj sha256sum file w Linuksie, shasum -a 256 file w macOS albo Get-FileHash file w PowerShellu w Windowsie. W Pythonie hashlib.sha256(data).hexdigest() daje sumę kontrolną SHA-256, a zlib.crc32(data) daje CRC-32.
Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ