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.