Dowiedz się, jak generować i weryfikować pliki za pomocą sumy kontrolnej MD5 w systemie Linux
Suma kontrolna to cyfra służąca jako suma poprawnych cyfr w danych, która może zostać później wykorzystana do wykrycia błędów w danych podczas przechowywania lub przesyłania. Sumy MD5 (Message Digest 5) mogą służyć jako suma kontrolna do weryfikacji plików lub ciągów znaków w systemie plików Linux.
Sumy MD5 to 128-bitowe ciągi znaków (cyfry i litery) powstałe w wyniku uruchomienia algorytmu MD5 dla określonego pliku. Algorytm MD5 to popularna funkcja skrótu, która generuje 128-bitowy skrót wiadomości nazywany wartością skrótu, a gdy wygenerujesz go dla konkretnego pliku, pozostaje on dokładnie niezmieniony na każdym komputerze, niezależnie od tego, ile razy został wygenerowany.
Zwykle bardzo trudno jest znaleźć dwa różne pliki, których wynikiem są te same ciągi znaków. Dlatego możesz użyć md5sum, aby sprawdzić integralność danych cyfrowych, ustalając, czy pobrany plik lub obraz ISO jest kopią bit po bicie zdalnego pliku lub obrazu ISO.
Sugerowana lektura: Postęp – monitoruj postęp poleceń (cp, mv, dd, tar itp.) w systemie Linux
W systemie Linux program md5sum oblicza i sprawdza wartości skrótu MD5 pliku. Jest składnikiem pakietu GNU Core Utilities, dlatego jest preinstalowany w większości, jeśli nie we wszystkich dystrybucjach Linuksa.
Przyjrzyj się zawartości pliku /etc/group
zapisanego jako groups.cvs poniżej.
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik
Poniższe polecenie md5sums wygeneruje wartość skrótu dla pliku w następujący sposób:
md5sum groups.csv
bc527343c7ffc103111f3a694b004e2f groups.csv
Kiedy próbujesz zmienić zawartość pliku, usuwając pierwszą linię, root:x:0:
, a następnie uruchamiasz polecenie po raz drugi, spróbuj zwrócić uwagę na wartość skrótu:
md5sum groups.csv
46798b5cfca45c46a84b7419f8b74735 groups.csv
Zauważysz, że wartość skrótu uległa zmianie, co wskazuje, że zawartość pliku została zmieniona.
Teraz odłóż pierwszą linię pliku, root:x:0:
i zmień jego nazwę na group_file.txt, a następnie uruchom poniższe polecenie, aby ponownie wygenerować wartość skrótu:
md5sum groups_list.txt
bc527343c7ffc103111f3a694b004e2f groups_list.txt
Z powyższych danych wynika, że wartość skrótu jest nadal taka sama, nawet jeśli nazwa pliku została zmieniona, z zachowaniem oryginalnej zawartości.
Ważne: sumy md5 weryfikują/działają tylko z zawartością pliku, a nie z nazwą pliku.
Plik groups_list.txt jest duplikatem pliku groups.csv, dlatego spróbuj jednocześnie wygenerować wartość skrótu plików w następujący sposób.
Zobaczysz, że oba mają równe wartości skrótu, dzieje się tak, ponieważ mają dokładnie tę samą treść.
md5sum groups_list.txt groups.csv
bc527343c7ffc103111f3a694b004e2f groups_list.txt
bc527343c7ffc103111f3a694b004e2f groups.csv
Możesz przekierować wartości skrótu pliku(ów) do pliku tekstowego i przechowywać je, a także udostępniać je innym. W przypadku dwóch powyższych plików możesz wydać poniższe polecenie, aby przekierować wygenerowane wartości skrótu do pliku tekstowego do późniejszego wykorzystania:
md5sum groups_list.txt groups.csv > myfiles.md5
Aby sprawdzić, czy pliki nie zostały zmodyfikowane od czasu utworzenia sumy kontrolnej, uruchom kolejne polecenie. Powinna być widoczna nazwa każdego pliku wraz z komunikatem „OK”.
Sugerowana lektura: Znajdź 15 procesów o największym zużyciu pamięci w systemie Linux
Opcja -c
lub --check
informuje komendę md5sums, aby odczytała sumy MD5 z plików i je sprawdziła.
md5sum -c myfiles.md5
groups_list.txt: OK
groups.csv: OK
Pamiętaj, że po utworzeniu sumy kontrolnej nie możesz zmienić nazw plików, w przeciwnym razie przy próbie sprawdzenia plików pod nowymi nazwami pojawi się błąd „Nie ma takiego pliku ani katalogu”.
Na przykład:
mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c myfiles.md5
md5sum: groups_list.txt: No such file or directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read
Koncepcja ta działa również w przypadku ciągów znaków, w poniższych poleceniach -n
oznacza, że nie wyświetlaj końcowego znaku nowej linii:
echo -n "Tecmint How-Tos" | md5sum -
afc7cb02baab440a6e64de1a5b0d0f1b -
echo -n "Tecmint How-To" | md5sum -
65136cb527bff5ed8615bd1959b0a248 -
W tym poradniku pokazałem jak wygenerować wartości skrótu dla plików, utworzyć sumę kontrolną w celu późniejszej weryfikacji integralności plików w systemie Linux. Chociaż wykryto luki w zabezpieczeniach algorytmu MD5, skróty MD5 nadal pozostają przydatne, zwłaszcza jeśli ufa się stronie, która je tworzy.
Weryfikacja plików jest zatem ważnym aspektem obsługi plików w systemach, aby uniknąć pobierania, przechowywania lub udostępniania uszkodzonych plików. Na koniec, jak zwykle, skontaktuj się z nami za pomocą poniższego formularza komentarza, aby uzyskać pomoc. Możesz także zgłosić kilka ważnych sugestii, jak ulepszyć ten post.