
El MD5 es un algoritmo hash unidireccional como se define en el RFC1321 y se puede utilizar para ayudar a determinar la integridad de un archivo, proporcionando una firma digital de 128 bits. Esta firma digital es como una huella digital para un archivo. El cambio de un solo byte en un archivo resultará en un hash MD5 diferente.
Los hashes MD5 se pueden utilizar para catalogar archivos en un sistema de archivos y luego determinar en una fecha posterior que los archivos no han sido alterados de ninguna manera, por ejemplo, si alguien accedió a un sistema y modificó los archivos del mismo.
También pueden utilizarse para garantizar que un archivo descargado de un sitio web sea el mismo que se esperaba. Esto puede ser especialmente importante al descargar un archivo desde un mirror, para asegurarte de que no estás instalando un programa modificado que contiene un troyano o algún otro malware.
Puedes comprobar como funciona un generador de códigos Hash MD5 en el siguiente enlace.
Cómo comprobar la integridad de un archivo mediante el hash MD5
Simplemente comparando el hash MD5 del archivo que has descargado del mirror con el del sitio web original, puedes determinar si el archivo es exactamente el mismo.
Para comprobar el hash MD5 de cualquier archivo, en Linux, simplemente tienes que ejecutar el siguiente comando:
1 | $ md5sum /ruta/nombreArchivo.ext |
El comando dependerá de la distribución de Linux que estés usando. El anterior se usa en distribuciones Redhat, Suse, Ubuntu,… En otras distribuciones el comando puede ser el siguiente:
1 | $ md5 /ruta/nombreArchivo.ext |
En ambos casos, tras ejecutar el comando, se devolverá algo parecido a lo siguiente:
1 | c4e5f7fcbcef75924b2abde2b2e75f3f /ruta/nombreArchivo.ext |
donde puedes observar el hash MD5 perteneciente al archivo en cuestión.
Para archivos descargados de Internet, por ejemplo, si queremos bajarnos la distribución 17.04 de Ubuntu Desktop, podemos observar como, en un archivo llamado MD5SUMS, nos muestran cuales deben de ser los hashes MD5 de los distintos archivos posibles de descargar.
1 2 3 4 5 6 | 18cc54af55d7ca931bbb8588e8d9c1bd *ubuntu-17.04-desktop-amd64.iso eb6c4ea889f5ab44f77c9d1cde6a8818 *ubuntu-17.04-desktop-i386.iso 4672ce371fb3c1170a9e71bc4b2810b9 *ubuntu-17.04-server-amd64.img 4672ce371fb3c1170a9e71bc4b2810b9 *ubuntu-17.04-server-amd64.iso 8e82de7efa4b1bf159b4be325e952eb1 *ubuntu-17.04-server-i386.img 8e82de7efa4b1bf159b4be325e952eb1 *ubuntu-17.04-server-i386.iso |
Así, si nos descargamos el archivo ‘ubuntu-17.04-desktop-i386.iso‘, cuando la descarga haya finalizado, deberemos ejecutar el comando:
1 | $ md5sum ubuntu-17.04-desktop-i386.iso |
el cual debe devolvernos lo siguiente:
1 | eb6c4ea889f5ab44f77c9d1cde6a8818 ubuntu-17.04-desktop-i386.iso |
De esta forma, podemos saber que el archivo descargado es el correcto, y podremos proceder a su instalación o a su copia en CD o USB para su posterior instalación.
Mediante el hash MD5 podemos estar seguros de la integridad de cualquier archivo, ya que el simple cambio de un solo byte en el mismo hará que el hash MD5 sea completamente distinto, por lo que, si esto es así, deberemos volver a descargar el archivo, en el caso de descargas desde Internet, o a recuperar el mismo desde la última copia de seguridad, en el caso de archivos de nuestro sistema.
