Aprenda cómo generar y verificar archivos con la suma de comprobación MD5 en Linux


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

Sumas MD5 son cadenas de caracteres de 128 bits (números y letras) que resultan de la ejecución del algoritmo MD5 en un archivo específico. El algoritmo MD5 es una función hash popular que genera un resumen de mensaje de 128 bits denominado valor hash, y cuando se genera uno para un archivo en particular, no se modifica en ninguna máquina, independientemente del número de veces que se genere.

Por lo general, es muy difícil encontrar dos archivos distintos que resulten en las mismas cadenas. Por lo tanto, puede usar md5sum para verificar la integridad de los datos digitales al determinar 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 a los contenidos de /etc/group guardados 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 de 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, indicando 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 nuevamente su valor hash:

$ md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

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

rojo

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ás 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 redireccionar los valores hash de un archivo (s) a un archivo de texto y almacenarlos, 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 verificar que los archivos no se hayan modificado desde que creó la suma de comprobación, ejecute el siguiente comando. Debería poder ver el nombre de cada archivo junto con "OK" .

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

$ 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, aparecerá el error " No existe tal archivo o directorio " cuando intente verificar los archivos con nombres nuevos.

Por ejemplo:

$ mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c  myfiles.md5

Mensaje de error

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 comandos a continuación, -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 la verificación posterior de la integridad de los archivos 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, verificar archivos es un aspecto importante del manejo de archivos en sus sistemas para evitar descargar, almacenar o compartir archivos dañados. Por último, pero no por ello menos importante, comuníquese con nosotros mediante el formulario de comentarios que se encuentra a continuación para obtener ayuda. También puede hacer algunas sugerencias importantes para mejorar esta publicación.