Apreneu a generar i verificar fitxers amb MD5 Checksum a Linux


Una suma de comprovació és un dígit que serveix com a suma de dígits correctes de les dades, que es pot utilitzar posteriorment per detectar errors en les dades durant l'emmagatzematge o la transmissió. Les sumes MD5 (Message Digest 5) es poden utilitzar com a suma de comprovació per verificar fitxers o cadenes en un sistema de fitxers Linux.

Les sumes MD5 són cadenes de caràcters de 128 bits (números i lletres) resultants de l'execució de l'algorisme MD5 amb un fitxer específic. L'algorisme MD5 és una funció hash popular que genera un resum de missatges de 128 bits anomenat valor hash, i quan en genereu un per a un fitxer en concret, no es modifica precisament a qualsevol màquina, independentment del nombre de vegades que es generi.

Normalment és molt difícil trobar dos fitxers diferents que donen lloc a les mateixes cadenes. Per tant, podeu utilitzar md5sum per comprovar la integritat de les dades digitals determinant que un fitxer o ISO que heu baixat és una còpia bit per bit del fitxer remot o ISO.

A Linux, el programa md5sum calcula i verifica els valors hash MD5 d'un fitxer. És un component del paquet GNU Core Utilities, per tant, ve preinstal·lat a la majoria, si no a totes les distribucions de Linux.

Fes una ullada al contingut de /etc/group desat com a groups.cvs a continuació.

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

L'ordre md5sums següent generarà un valor hash per al fitxer de la manera següent:

$ md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Quan intenteu alterar el contingut del fitxer eliminant la primera línia, root:x:0: i, a continuació, executeu l'ordre per segona vegada, proveu d'observar el valor hash:

$ md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Notareu que el valor hash ara ha canviat, cosa que indica que el contingut del fitxer s'ha modificat.

Ara, torneu a col·locar la primera línia del fitxer, root:x:0: i canvieu-ne el nom a group_file.txt i executeu l'ordre següent per tornar a generar el seu valor hash:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

A partir de la sortida anterior, el valor hash segueix sent el mateix fins i tot quan s'ha canviat el nom del fitxer, amb el seu contingut original.

Important: md5 sums només verifica/funciona amb el contingut del fitxer en lloc del nom del fitxer.

El fitxer groups_list.txt és un duplicat de groups.csv, per tant, intenteu generar el valor hash dels fitxers alhora de la següent manera.

Veureu que tots dos tenen valors hash iguals, això és perquè tenen exactament el mateix contingut.

$ md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Podeu redirigir els valors hash d'un fitxer o fitxers a un fitxer de text i emmagatzemar-los, compartir-los amb altres persones. Per als dos fitxers anteriors, podeu emetre l'ordre següent per redirigir els valors hash generats a un fitxer de text per al seu ús posterior:

$ md5sum groups_list.txt  groups.csv > myfiles.md5

Per comprovar que els fitxers no s'han modificat des que vau crear la suma de comprovació, executeu l'ordre següent. Hauríeu de poder veure el nom de cada fitxer juntament amb \D'acord.

L'opció -c o --check diu a l'ordre md5sums que llegeixi les sumes MD5 dels fitxers i les comproveu.

$ md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Recordeu que després de crear la suma de comprovació, no podeu canviar el nom dels fitxers o, en cas contrari, obteniu un error \No hi ha aquest fitxer o directori, quan intenteu verificar els fitxers amb noms nous.

Per exemple:

$ 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

El concepte també funciona per a les cadenes de la mateixa manera, a les ordres següents, -n significa que no emet la nova línia final:

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

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

65136cb527bff5ed8615bd1959b0a248  -

En aquesta guia, us vaig mostrar com generar valors hash per a fitxers, crear una suma de verificació per a una verificació posterior de la integritat dels fitxers a Linux. Tot i que s'han detectat vulnerabilitats de seguretat a l'algoritme MD5, els hash MD5 segueixen sent útils, sobretot si confieu en la part que els crea.

Per tant, verificar els fitxers és un aspecte important de la gestió de fitxers als vostres sistemes per evitar la descàrrega, l'emmagatzematge o la compartició de fitxers danyats. Finalment, però no menys important, com és habitual, poseu-vos en contacte amb nosaltres mitjançant el formulari de comentaris que trobareu a continuació per demanar ajuda, també podeu fer alguns suggeriments importants per millorar aquesta publicació.