Aflați cum să generați și să verificați fișiere cu suma de verificare MD5 în Linux


O sumă de control este o cifră care servește ca o sumă a cifrelor corecte din date, care poate fi folosită ulterior pentru a detecta erorile din date în timpul stocării sau transmisiei. Sumele MD5 (Message Digest 5) pot fi folosite ca sumă de verificare pentru a verifica fișierele sau șirurile dintr-un sistem de fișiere Linux.

Sumele MD5 sunt șiruri de caractere de 128 de biți (cifere și litere) rezultate din rularea algoritmului MD5 pe un anumit fișier. Algoritmul MD5 este o funcție hash populară care generează un rezumat de mesaje pe 128 de biți, denumită valoare hash, iar atunci când generați unul pentru un anumit fișier, acesta rămâne exact neschimbat pe orice mașină, indiferent de numărul de ori este generat.

În mod normal, este foarte dificil să găsești două fișiere distincte care au ca rezultat aceleași șiruri. Prin urmare, puteți utiliza md5sum pentru a verifica integritatea datelor digitale, determinând că un fișier sau ISO pe care l-ați descărcat este o copie bit-cu-bit a fișierului sau ISO la distanță.

Cititură recomandată: Progres – Monitorizează progresul pentru comenzile (cp, mv, dd, tar etc.) în Linux

În Linux, programul md5sum calculează și verifică valorile hash MD5 ale unui fișier. Este un component al pachetului GNU Core Utilities, prin urmare vine preinstalat pe majoritatea, dacă nu pe toate distribuțiile Linux.

Aruncă o privire la conținutul /etc/group salvat ca groups.cvs mai jos.

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

Comanda md5sums de mai jos va genera o valoare hash pentru fișier, după cum urmează:

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Când încercați să modificați conținutul fișierului eliminând prima linie, root:x:0: și apoi executați comanda pentru a doua oară, încercați să observați valoarea hash:

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Veți observa că valoarea hash s-a schimbat acum, indicând faptul că conținutul fișierului a fost modificat.

Acum, puneți înapoi prima linie a fișierului, root:x:0: și redenumiți-o în group_file.txt și rulați comanda de mai jos pentru a genera din nou valoarea hash:

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Din rezultatul de mai sus, valoarea hash este în continuare aceeași chiar și atunci când fișierul a fost redenumit, cu conținutul său original.

Important: md5 sums verifică/funcționează numai cu conținutul fișierului, mai degrabă decât cu numele fișierului.

Fișierul groups_list.txt este un duplicat al groups.csv, așa că încercați să generați valoarea hash a fișierelor în același timp, după cum urmează.

Veți vedea că ambele au valori hash egale, asta pentru că au exact același conținut.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Puteți redirecționa valorile hash ale unui fișier într-un fișier text și să le stocați, să le partajați altora. Pentru cele două fișiere de mai sus, puteți lansa comanda de mai jos pentru a redirecționa valorile hash generate într-un fișier text pentru utilizare ulterioară:

md5sum groups_list.txt  groups.csv > myfiles.md5

Pentru a verifica dacă fișierele nu au fost modificate de când ați creat suma de control, executați următoarea comandă. Ar trebui să puteți vizualiza numele fiecărui fișier împreună cu „OK”.

Lectură sugerată: Găsiți primele 15 procese în funcție de utilizarea memoriei în Linux

Opțiunea -c sau --check îi spune comenzii md5sums să citească sumele MD5 din fișiere și să le verifice.

md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Amintiți-vă că, după crearea sumei de verificare, nu puteți redenumi fișierele sau, altfel, primiți o eroare „Nu există un astfel de fișier sau director”, când încercați să verificați fișierele cu nume noi.

De exemplu:

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

Conceptul funcționează și pentru șiruri de caractere la fel, în comenzile de mai jos, -n înseamnă că nu scoateți linia nouă de sfârșit:

echo -n "Tecmint How-Tos" | md5sum - 

afc7cb02baab440a6e64de1a5b0d0f1b  -
echo -n "Tecmint How-To" | md5sum - 

65136cb527bff5ed8615bd1959b0a248  -

În acest ghid, v-am arătat cum să generați valori hash pentru fișiere, să creați o sumă de control pentru verificarea ulterioară a integrității fișierelor în Linux. Deși au fost detectate vulnerabilități de securitate în algoritmul MD5, hashurile MD5 rămân în continuare utile mai ales dacă aveți încredere în partea care le creează.

Prin urmare, verificarea fișierelor este un aspect important al gestionării fișierelor pe sistemele dvs. pentru a evita descărcarea, stocarea sau partajarea fișierelor corupte. Nu în ultimul rând, ca de obicei, ajungeți la noi prin intermediul formularului de comentarii de mai jos pentru a solicita orice ajutor, puteți, de asemenea, să faceți câteva sugestii importante pentru a îmbunătăți această postare.