Dla programistów
Jak sprawdzić, czy pobrany plik nie został zmieniony (suma kontrolna SHA-256)
Strona pobierania podaje skrót SHA-256, a Ty chcesz wiedzieć, czy plik na dysku to ten sam plik. Policz skrót lokalnie, porównaj go ze wzorcem i sprawdź, co zgodność mówi, a czego nie.
- Redakcja HNarzędzi
- Publikacja:
Skrót pliku (suma kontrolna, ang. checksum) to ciąg znaków policzony z całej zawartości pliku. SHA-256 daje zawsze 256 bitów, czyli 64 znaki szesnastkowe, niezależnie od tego, czy plik ma 1 KB, czy kilka GB. Ten sam plik zawsze daje ten sam skrót, a zmiana jednego bitu daje zupełnie inny wynik. Jeśli skrót policzony u Ciebie zgadza się z opublikowanym przez wydawcę, plik na dysku ma te same bajty, co plik, z którego go policzono.
Co potwierdza zgodność skrótów
Zgodność potwierdza integralność: pobranie nie zostało przerwane, plik nie jest ucięty ani uszkodzony i nikt go po drodze nie zmienił, o ile skrót wzorcowy pochodzi z miejsca, którego ta zmiana nie dotyczy. Pochodzenia pliku sama zgodność nie dowodzi. Jeśli skrót stoi na tej samej stronie i na tym samym serwerze co plik, osoba, która podmieniła plik, mogła podmienić też skrót.
Skrót ma więc większą wartość, gdy:
- plik pobierasz z serwera lustrzanego (mirrora), a skrót czytasz ze strony głównej wydawcy,
- skrót leży w pliku z sumami, który wydawca podpisał cyfrowo, i podpis też sprawdzisz.
Przy zwykłej kontroli „czy pobranie się udało” wystarczy skrót ze strony pobierania.
Gdzie wydawcy publikują sumy
Najczęściej obok linku do pobrania: jako tekst na stronie, jako plik .sha256 albo SHA256SUMS z listą wielu plików, albo w opisie wydania. Przykład z dokumentacji Get-FileHash: strona wydania PowerShella podaje skrót SHA256 każdego pakietu. Weź skrót dokładnie tej wersji i tej architektury (x64, ARM) co pobrany plik.
Sprawdzenie w przeglądarce
- Otwórz Generator hash i w polu „Źródło danych” wybierz „Plik”. Przeciągnij pobrany plik. Plik nie jest wysyłany na serwer.
- Narzędzie liczy jednocześnie MD5, SHA-1, SHA-256, SHA-384 i SHA-512.
- W polu „Porównaj z oczekiwanym skrótem” wklej skrót od wydawcy. Pasujący wiersz podświetla się na zielono, a pod polem pojawia się „Zgodność: skrót pasuje do algorytmu SHA-256”. Nie musisz wiedzieć, którego algorytmu użył wydawca.

Jak narzędzie porównuje skróty
Narzędzie uznaje skrót za zgodny, gdy wklejony tekst zawiera pełny skrót w hex (wielkość liter i spacje nie mają znaczenia) albo w Base64. Możesz wkleić skrót razem z tym, co zwykle mu towarzyszy:
| Wklejony tekst | Wynik |
|---|---|
| sam skrót, małymi lub WIELKIMI literami, także podzielony spacjami | zgodność |
| zapis Base64 | zgodność |
cały wiersz z sha256sum: skrót, spacje i nazwa pliku |
zgodność |
wiersz w formacie BSD: SHA256 (plik) = skrót |
zgodność |
skrót z prefiksem sha256: |
zgodność |
bajty rozdzielone dwukropkami (c6:1e:19:...) |
zgodność |
| pierwsze 16 znaków skrótu | brak zgodności |
| pełny skrót z jednym zmienionym znakiem | brak zgodności |
Fragment skrótu nigdy nie wystarczy. Nie porównuj na oko tylko początku i końca: pełne porównanie to jedno wklejenie.
MD5, SHA-1 czy SHA-256
Algorytm wybiera wydawca, a Ty porównujesz z tym, który podał. Różnią się odpornością na celowe oszustwo:
- MD5 (32 znaki hex). RFC 6151 z marca 2011 stwierdza, że MD5 nie jest już akceptowalny tam, gdzie potrzebna jest odporność na kolizje, np. w podpisach cyfrowych. Kolizja to dwa różne pliki o tym samym skrócie, przygotowane razem przez atakującego.
- SHA-1 (40 znaków). Pierwszą kolizję SHA-1 pokazali 23 lutego 2017 badacze z CWI Amsterdam i Google (shattered.io): dwa różne pliki PDF z identycznym SHA-1. NIST ogłosił 15 grudnia 2022, że SHA-1 powinien zostać wycofany do 31 grudnia 2030 na rzecz SHA-2 i SHA-3.
- SHA-256 (64 znaki) należy do rodziny SHA-2 i jest dziś zwykłym wyborem wydawców.
Do wykrycia uszkodzonego pobrania wszystkie trzy wystarczą. Gdy wydawca podaje tylko MD5 lub SHA-1, sprawdź go, ale zgodność traktuj jako test uszkodzenia pliku, nie dowód pochodzenia. Gdy podaje kilka skrótów, porównaj SHA-256 (lub dłuższy).
Sprawdzenie poleceniem systemowym
Wynik z polecenia możesz wkleić do tego samego pola porównania, także razem z nazwą pliku. Składnia z dokumentacji producentów (sprawdzona w październiku 2026):
| System | Polecenie |
|---|---|
| Windows, PowerShell | Get-FileHash .\plik.iso -Algorithm SHA256 (SHA256 to wartość domyślna, Microsoft) |
| Windows, wiersz poleceń | certutil -hashfile plik.iso SHA256 (składnia: certutil [options] -hashfile InFile [HashAlgorithm], algorytmy: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512, Microsoft) |
| macOS | shasum -a 256 plik.iso (bez -a polecenie liczy SHA-1, według man shasum) |
| Linux | sha256sum plik.iso (GNU coreutils) |
Jeśli wydawca dał plik .sha256 w formacie „skrót, dwie spacje, nazwa pliku”, sha256sum -c plik.sha256 na Linuksie lub shasum -a 256 -c plik.sha256 w macOS porównają za Ciebie i wypiszą OK albo FAILED. Pobrany plik i plik z sumami muszą leżeć w tym samym katalogu, a nazwa w pliku sum musi się zgadzać z nazwą pliku na dysku.
Przykład: jeden zmieniony bit
Plik testowy installer-test.bin to 5 242 880 bajtów (5 MiB) pseudolosowych danych. Narzędzie pokazuje jego wagę jako „5 MB”, bo liczy w jednostkach po 1024 bajty. Drugi plik, installer-test-changed.bin, to kopia z jednym odwróconym bitem (bajt o indeksie 1 000 000). Oba pliki mają tę samą wagę.
| Plik | SHA-256 w narzędziu |
|---|---|
installer-test.bin |
c61e1954d6819386d3bdf0f3262c972865ffcdd32e0a59995c826ffd14ad57bd |
installer-test-changed.bin |
6b79f7773e991686de44900ef7560de571bc8986330b4c1cf31ae46f4c490baa |
Różni się 59 z 64 znaków, choć pliki różnią się jednym bitem z ponad 41 milionów. Ten sam wynik daje polecenie shasum -a 256. Skróty MD5 obu plików też są zupełnie różne: e2fb435fa067690c804d1a488adf2858 i 0f583f6df74fca730b90a87119d66891.
Gdy do pola porównania wkleimy skrót pierwszego pliku (jako wzorcowy), a w narzędziu wczytamy drugi plik, dostajemy „Brak zgodności z żadnym z obliczonych skrótów”. Tak wygląda podmieniony lub uszkodzony plik.

W terminalu ten sam test wygląda tak (shasum na macOS, w którym plik sum zawierał skrót oryginału pod nazwą zmienionego pliku):
installer-test.bin: OK
installer-test-changed.bin: FAILED
shasum: WARNING: 1 computed checksum did NOT match
Ograniczenia narzędzia
- Plik jest wczytywany w całości do pamięci przeglądarki, a przy MD5 powstaje jeszcze jedna kopia w pamięci. Górną granicę ustala urządzenie, nie narzędzie. Plik 200 MiB policzył się w naszym teście w około 4 sekundy (Chrome na komputerze z macOS; na Twoim sprzęcie może być inaczej). Większych plików nie próbowaliśmy. Dla obrazów kilkugigabajtowych użyj polecenia systemowego.
- SHA-1, SHA-256, SHA-384 i SHA-512 liczy mechanizm wbudowany w przeglądarkę. MD5 liczy własna implementacja zgodna z RFC 1321, bo przeglądarki go nie udostępniają. Na naszym pliku testowym wynik zgadza się z wynikiem innego programu.
- Przeglądarka liczy skróty tylko na stronie otwartej przez HTTPS. Bez niego narzędzie zgłasza błąd.
- Narzędzie porównuje tylko cały skrót (patrz tabela wyżej) i nie sprawdza podpisów cyfrowych.
Skróty nie pasują. Co sprawdzić
- Czy wkleiłeś pełny skrót, a nie jego fragment.
- Czy algorytm się zgadza: SHA-256 ma 64 znaki hex (44 w Base64), SHA-1 40, MD5 32.
- Czy skrót dotyczy tego pliku: wersji, systemu, architektury, formatu (np.
.isozamiast.zip). - Czy skrót liczysz z pobranego pliku, a nie z rozpakowanej zawartości. Wydawcy zwykle podają skrót archiwum.
- Pobierz plik jeszcze raz, najlepiej bez pośredników (VPN, proxy, menedżer pobierania). Przerwane lub przepisane pobranie kończy się innym skrótem.
Jeśli drugie pobranie z tego samego źródła też się nie zgadza, nie uruchamiaj pliku i zgłoś to wydawcy.