Búsqueda de sitios web

Aprenda a generar y verificar archivos con suma de comprobación MD5 en Linux


Una suma de comprobación es un dígito que sirve como suma de dígitos correctos en los datos, que se puede utilizar más adelante 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 Linux.

Las sumas MD5 son cadenas de caracteres de 128 bits (números y letras) resultantes 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 se modifica en ninguna máquina, sin importar la cantidad de veces que se genere.

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

Lectura sugerida: Progreso: monitorear el progreso de los comandos (cp, mv, dd, tar, etc.) en Linux

En Linux, el programa md5sum calcula y verifica los valores hash MD5 de un archivo. Es un componente del paquete GNU Core Utilities y, por lo tanto, 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 siguiente comando md5sums 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 se modificó el contenido del archivo.

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

Según el resultado anterior, el valor hash sigue siendo el mismo incluso cuando se ha cambiado el nombre del archivo, con su contenido original.

Importante: sumas md5 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á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 redirigir los valores hash de un archivo 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 verificar que los archivos no se hayan modificado desde que creó la suma de verificación, ejecute el siguiente comando. Debería poder ver el nombre de cada archivo junto con “Aceptar”.

Lectura sugerida: Encuentre los 15 procesos principales por uso de memoria en Linux

La opción -c o --check le indica 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 verificació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 no generar 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 y crear una suma de verificación para verificar posteriormente la integridad del archivo en Linux. Aunque se han detectado vulnerabilidades de seguridad en el algoritmo MD5, los hashes MD5 siguen siendo útiles, especialmente si confías 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 corruptos. Por último, pero no menos importante, como siempre, comuníquese con nosotros a través del formulario de comentarios a continuación para solicitar ayuda. También puede hacer algunas sugerencias importantes para mejorar esta publicación.