MD5 tiene sus defectos y, por lo tanto, no es una muy buena opción para ciertos métodos de cifrado, pero es muy adecuado para la verificación de archivos. Funciona creando una suma de verificación de un archivo y comparando el resultado con el original. Eso significa que si hay cambios en un archivo, no hay forma de que pueda producir un valor de resumen similar al original. El valor permanece constante sin importar dónde se genere o cuántas veces siempre que el archivo permanezca sin cambios.
Para esta guía, buscaremos formas de generar un valor de hash MD5 de un archivo. Eso le permitirá verificar la integridad de los archivos desde ubicaciones remotas o en su máquina local.
Instalar md5sum
En los sistemas de Linux y casi importantes de Unix y unix, vienen preinstalados con una herramienta MD5. El más común es md5sum. Por defecto, debe encontrarlo disponible en su sistema.
$ que md5sumSi no tiene la herramienta instalada, puede usar el Administrador de paquetes de su sistema.
Debian/Ubuntu
En Ubuntu y otras distribuciones basadas en Debian, use APT como:
Rehl/centos
En rehl y centos, usa yum como:
Arch/Manjaro
Si está en Manjaro u otras distribuciones basadas en Arch, use Pacman usando el comando:
Fedora
Finalmente, en los sistemas Fedora, use el comando DNF como:
Generar md5sum de un archivo
Con la herramienta instalada, podemos continuar y generar un MD5SUM para un archivo. Puede usar cualquier archivo básico disponible en su sistema. En mi ejemplo, estoy usando los hosts /etc /disponibles en los sistemas Linux.
Para generar el md5sum de un archivo, simplemente use el comando md5sum seguido del nombre de archivo, que puede ver en el comando a continuación:
sudo md5sum /etc /hostsEl comando anterior debe generar un valor hash del archivo como se muestra en la salida a continuación:
F0EA6F62E5A12ED9AEE557B23842C6F6 /ETC /HOSTSUna vez que cambia el contenido del archivo, el valor md5sum se vuelve completamente diferente. Por ejemplo, agregue un valor al archivo/etc/hosts.
sudo nano /etc /huéspedesAgregue la siguiente entrada al archivo (no dude en cambiar a cualquier forma que mejor le parezca).
192.168.0.20 localhostSi intenta calcular el valor MD5 del archivo con el nuevo contenido como:
sudo md5sum /etc /hostsEl valor hash es diferente como se muestra en la salida a continuación:
f4b7f54d5b85a9e73e3c8960c6e9319e /etc /hostsSi revertir el archivo a su contenido original, el valor MD5SUM es similar al original, lo que le permite saber cuándo ha cambiado un archivo.
NOTA: El valor MD5 será similar al original incluso si el archivo se renombra. Esto se debe a que MD5 se calcula en función del contenido del archivo y no el nombre de archivo.
Verificar archivos en línea
Supongamos que desea verificar la integridad de un archivo y asegurarse de que esté a prueba de manipulaciones. Para hacer esto, todo lo que necesita es el valor MD5 original. En mi ejemplo, estoy usando un paquete debs simple de MySQL del recurso a continuación:
https: // dev.mysql.com/downloads/mysql/
Descargue el archivo con wget usando el comando como:
wget https: // dev.mysql.com/get/downloads/mysql-8.0/libmysqlclient21_8.0.25-1debian10_amd64.debutanteUna vez que el archivo ha descargado:
Verifiquemos ahora el valor MD5 usando un comando:
$ md5sum libmysqlclient21_8.0.25-1debian10_amd64.debutanteSi el archivo no se ha modificado de ninguna manera, debe obtener un valor similar al original como se muestra:
62ea69f71defbfdac7a60c124f5769c7 libmysqlclient21_8.0.25-1debian10_amd64.debutanteConclusión
Este tutorial analizó un método simple para verificar la suma de verificación MD5 de los archivos y verificar su estado de modificación.
Aquí hay un ejercicio rápido para ti.
Ejercicio
Cree un script bash simple que verifique si un valor de archivo MD5 tiene alguna modificación registrada cada 5 minutos. Si el archivo ha cambiado, elimine el archivo y apague el sistema.
Ese debería ser un ejercicio divertido!