Cómo obtener el hash MD5 de un archivo

Cómo obtener el hash MD5 de un archivo
El algoritmo de digest de mensajes, comúnmente conocido como hash MD5, es un tipo de función de hash criptográfica utilizada principalmente para verificar la integridad de los archivos. MD5 es un resumen de mensajes de 128 bits producido después de ejecutar la función MD5 en un archivo.

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 md5sum
/usr/bin/md5sum

Si 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:

actualización de sudo apt-get
sudo apt -get install md5sum -y

Rehl/centos
En rehl y centos, usa yum como:

actualización de sudo yum
sudo yum install md5sum

Arch/Manjaro
Si está en Manjaro u otras distribuciones basadas en Arch, use Pacman usando el comando:

sudo Pacman -Sy
sudo Pacman -S MD5SUM

Fedora
Finalmente, en los sistemas Fedora, use el comando DNF como:

actualización de sudo DNF
sudo dnf install md5sum

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 /hosts

El comando anterior debe generar un valor hash del archivo como se muestra en la salida a continuación:

F0EA6F62E5A12ED9AEE557B23842C6F6 /ETC /HOSTS

Una 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éspedes

Agregue la siguiente entrada al archivo (no dude en cambiar a cualquier forma que mejor le parezca).

192.168.0.20 localhost

Si intenta calcular el valor MD5 del archivo con el nuevo contenido como:

sudo md5sum /etc /hosts

El valor hash es diferente como se muestra en la salida a continuación:

f4b7f54d5b85a9e73e3c8960c6e9319e /etc /hosts

Si 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.debutante

Una vez que el archivo ha descargado:

Verifiquemos ahora el valor MD5 usando un comando:

$ md5sum libmysqlclient21_8.0.25-1debian10_amd64.debutante

Si 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.debutante

Conclusió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!