md5sum

Oblicza i weryfikuje sumy kontrolne MD5 plików.

md5sum to klasyczne narzędzie GNU coreutils, które liczy 128-bitową sumę kontrolną MD5 pliku i wypisuje ją jako 32-znakowy ciąg szesnastkowy. Używasz go, gdy chcesz sprawdzić, czy plik dotarł do ciebie w całości i bez uszkodzeń — pobrałeś obraz ISO, przesłałeś backup na inny serwer albo chcesz szybko porównać dwie kopie tego samego pliku. Daje ci jedną liczbę, którą porównujesz z wartością wzorcową: jeśli się zgadza, zawartość jest identyczna co do bajta.

Składnia i najważniejsze opcje

Podstawowa składnia wygląda tak: md5sum [opcje] [plik...]. Bez argumentu plikowego czyta ze standardowego wejścia.

  • -c, --check — czyta sumy z podanego pliku i weryfikuje, czy pliki na dysku im odpowiadają.
  • --tag — tworzy sumę w stylu BSD (format MD5 (plik) = ...) zamiast domyślnego GNU.
  • -b, --binary — czyta w trybie binarnym (na Linuksie i tak domyślny; ma znaczenie głównie na systemach rozróżniających tryby).
  • -t, --text — czyta w trybie tekstowym (domyślny przy odczycie).
  • --quiet — przy -c nie wypisuje OK dla plików, które przeszły weryfikację.
  • --status — przy -c nic nie wypisuje, daje tylko kod wyjścia (idealne do skryptów).
  • --ignore-missing — przy -c nie zgłasza błędu dla plików, których brakuje.
  • --strict — przy -c kończy z kodem niezerowym, jeśli któraś linia listy jest źle sformatowana.

Przykłady użycia

  • md5sum plik.iso — liczy sumę MD5 pojedynczego pliku i wypisuje ją razem z nazwą.
  • md5sum *.tar.gz > sumy.md5 — zapisuje sumy wszystkich archiwów do pliku, który później posłuży do weryfikacji.
  • md5sum -c sumy.md5 — sprawdza każdy plik z listy i przy każdym pisze OK albo FAILED.
  • md5sum -c --status sumy.md5 && echo "wszystko gra" — cicha weryfikacja w skrypcie: reagujesz tylko na kod wyjścia.
  • echo -n "haslo123" | md5sum — liczy sumę z tekstu podanego na wejściu (flaga -n w echo ucina znak nowej linii, który inaczej wpłynie na wynik).

Częste błędy i pułapki

Najważniejsze: MD5 nie jest bezpieczny kryptograficznie. Świetnie wykrywa przypadkowe uszkodzenia, ale nie chroni przed celowo spreparowanym plikiem — kolizje MD5 generuje się trywialnie. Do weryfikacji integralności po ataku używaj sha256sum.

Druga pułapka to echo bez -n — domyślnie dokleja znak nowej linii, więc suma z terminala nie zgodzi się z sumą liczoną przez inne narzędzia. Trzecia: plik z sumami musi mieć ścieżki względne pasujące do katalogu, w którym uruchamiasz -c, inaczej dostaniesz masę No such file or directory. Na macOS nie ma md5sum w standardzie — jest za to md5 (inny format) albo md5sum po doinstalowaniu coreutils z Homebrew.

Powiązane komendy: sha256sum, sha1sum, cksum, shasum, b2sum.