Aprenda a generar y verificar archivos con MD5 Checksum en Linux


Una suma de comprobación es un dígito que sirve como una suma de dígitos correctos en los datos, que se puede utilizar más tarde para detectar errores en los datos durante el almacenamiento o la transmisión. Las sumas MD5 (Message Digest 5) se pueden utilizar como suma de comprobación para verificar archivos o cadenas en un sistema de archivos de Linux.

Las sumas MD5 son cadenas de caracteres de 128 bits (números y letras) que resultan de ejecutar el algoritmo MD5 en un archivo específico. El algoritmo MD5 es una función hash popular que genera un resumen de mensajes de 128 bits denominado valor hash, y cuando genera uno para un archivo en particular, no cambia precisamente en ninguna máquina sin importar la cantidad de veces que se genera.

Normalmente es muy difícil encontrar dos archivos distintos que den como resultado las mismas cadenas. Por lo tanto, puede usar md5sum para verificar la integridad de los datos digitales determinando que un archivo o ISO que descargó es una copia bit a bit del archivo remoto o ISO.

En Linux, el programa md5sum calcula y verifica los valores hash MD5 de un archivo. Es un componente del paquete GNU Core Utilities, por lo que viene preinstalado en la mayoría, si no en todas, las distribuciones de Linux.

Eche un vistazo al contenido de /etc/group guardado como groups.cvs a continuación.

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

El comando md5sums a continuación generará un valor hash para el archivo de la siguiente manera:

$ md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

Cuando intente alterar el contenido del archivo eliminando la primera línea, root: x: 0: y luego ejecute el comando por segunda vez, intente observar el valor hash:

$ md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Notará que el valor hash ahora ha cambiado, lo que indica que el contenido del archivo se modificó.

Ahora, vuelva a colocar la primera línea del archivo, root: x: 0: y cámbiele el nombre a group_file.txt y ejecute el siguiente comando para generar su valor hash nuevamente:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

De la salida anterior, el valor hash sigue siendo el mismo incluso cuando se ha cambiado el nombre del archivo, con su contenido original.

Importante: md5 sums solo verifica/funciona con el contenido del archivo en lugar del nombre del archivo.

El archivo groups_list.txt es un duplicado de groups.csv, por lo tanto, intente generar el valor hash de los archivos al mismo tiempo de la siguiente manera.

Verá que ambos tienen valores hash iguales, esto se debe a que tienen exactamente el mismo contenido.

$ md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Puede redirigir los valores hash de un archivo (s) a un archivo de texto y almacenarlos y compartirlos con otros. Para los dos archivos anteriores, puede emitir el siguiente comando para redirigir los valores hash generados a un archivo de texto para su uso posterior:

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

Para comprobar que los archivos no se han modificado desde que creó la suma de comprobación, ejecute el siguiente comando. Debería poder ver el nombre de cada archivo junto con "Aceptar".

La opción -c o --check le dice al comando md5sums que lea las sumas MD5 de los archivos y las verifique.

$ md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Recuerde que después de crear la suma de comprobación, no puede cambiar el nombre de los archivos o, de lo contrario, obtendrá el error "No existe tal archivo o directorio" cuando intente verificar los archivos con nuevos nombres.

Por ejemplo:

$ 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 concepto también funciona para cadenas por igual, en los siguientes comandos, -n significa que no se genera la nueva línea final:

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

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

65136cb527bff5ed8615bd1959b0a248  -

En esta guía, le mostré cómo generar valores hash para archivos, crear una suma de comprobación para una verificación posterior de la integridad del archivo en Linux. Aunque se han detectado vulnerabilidades de seguridad en el algoritmo MD5, los hash MD5 siguen siendo útiles, especialmente si confía en la parte que los crea.

Por lo tanto, la verificación de archivos es un aspecto importante del manejo de archivos en sus sistemas para evitar descargar, almacenar o compartir archivos corruptos. Por último, pero no menos importante, como de costumbre, comuníquese con nosotros a través del formulario de comentarios a continuación para buscar ayuda, también puede hacer algunas sugerencias importantes para mejorar esta publicación.