Comando Linux md5sum explicado para principiantes (5 ejemplos)

comando md5sum

Al descargar archivos, particularmente al instalar archivos de sitios web, es bueno verificar que la descarga sea válida. Un sitio web a menudo mostrará un valor hash para cada archivo para asegurarse de que la descarga se complete correctamente. Este artículo discutirá la herramienta md5sum que puede usar para validar la descarga. Otras tres utilidades, sha1sum, sha256sum y sha512sum, funcionan de la misma manera que md5sum.

Comando Linux md5sum

El comando md5sum imprime una suma de verificación de 32 caracteres (128 bits) del archivo dado, utilizando el algoritmo MD5. La siguiente es la sintaxis de comandos de esta herramienta de línea de comandos:

md5sum [OPTION]... [FILE]...

Y así es como lo explica la página man de md5sum:

Print or check MD5 (128-bit) checksums.

Los siguientes ejemplos con estilo de preguntas y respuestas le dar√°n una idea a√ļn mejor del uso b√°sico de md5sum.

Nota: Usaremos tres archivos llamados archivo1.txt, archivo2.txt y archivo3.txt como archivos de entrada en nuestros ejemplos. El texto de cada archivo se muestra a continuación.

archivo1.txt:

hi
hello
how are you
thanks.

archivo2.txt:

hi
hello to you
I am fine
Your welcome!

archivo3.txt:

hallo
Guten Tag
Wie geht es dir
Danke.

Q1. ¬ŅC√≥mo mostrar el valor hash?

Utilice el comando sin ninguna opción para mostrar el valor hash y el nombre del archivo.

md5sum file1.txt

Aquí está la salida que este comando produjo en nuestro sistema:

[Documents]$ md5sum file1.txt
1ff38cc592c4c5d0c8e3ca38be8f1eb1  file1.txt
[Documents]$

comando md5sum

La salida tambi√©n se puede mostrar en un formato de estilo BSD usando la opci√≥n –tag.

md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt
MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1
[Documents]$

Q2. ¬ŅC√≥mo validar varios archivos?

El comando md5sum puede validar varios archivos a la vez. Agregaremos file2.txt y file3.txt para demostrar las capacidades.

Si escribe los hash en un archivo, puede usar ese archivo para verificar si alguno de los archivos ha cambiado. Aquí estamos escribiendo los valores hash de los archivos en los valores hash del archivo y luego los usamos para validar que ninguno de los archivos ha cambiado.

md5sum file1.txt file2.txt file3.txt > hashes
md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: OK
[Documents]$

Ahora cambiaremos file3.txt, agregaremos un solo signo de exclamación al final del archivo y volveremos a ejecutar el comando.

echo "!" >> file3.txt
md5sum --check hashes
[Documents]$ md5sum --check hashes
file1.txt: OK
file2.txt: OK
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$

Puede ver que file3.txt ha cambiado.

Q3. ¬ŅC√≥mo mostrar solo los archivos modificados?

Si tiene muchos archivos para revisar, es posible que desee mostrar solo los archivos que han cambiado. Usando la opci√≥n ¬ę–quiet¬Ľ, md5sum solo enumerar√° los archivos que han cambiado.

md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes
file3.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[Documents]$

Q4. ¬ŅC√≥mo detectar cambios en un script?

Es posible que desee utilizar md5sum en un script. Usando la opci√≥n ¬ę–status¬Ľ, md5sum no imprimir√° ning√ļn resultado. En su lugar, el c√≥digo de estado devuelve 0 si no hay cambios y 1 si los archivos no coinciden. El siguiente script hashes.sh devolver√° un 1 en el c√≥digo de estado porque los archivos han cambiado. El archivo de script est√° a continuaci√≥n:

sh hashes.sh
hashes.sh:
#!/bin/bash
md5sum --status --check hashes
Result=$?
echo "File check status is: $Result"
exit $Result

[Documents]$ sh hashes.sh
File check status is: 1
[[email protected] Documents]$

P5. ¬ŅC√≥mo identificar valores hash no v√°lidos?

md5sum puede informarle si tiene hashes no v√°lidos cuando compara archivos. Para advertirle si alg√ļn valor hash es incorrecto, puede usar la opci√≥n –warn. Para este √ļltimo ejemplo, usaremos sed para insertar un car√°cter adicional al comienzo de la tercera l√≠nea. Esto cambiar√° el valor hash en los hash del archivo, haci√©ndolo inv√°lido.

sed -i '3s/.*/a&/' hashes
md5sum --warn --check hashes

Esto muestra que la tercera línea tiene un hash no válido.

[Documents]$ sed -i '3s/.*/a&/' hashes
[Documents]$ md5sum --warn --check hashes
file1.txt: OK
file2.txt: OK
md5sum: hashes: 3: improperly formatted MD5 checksum line
md5sum: WARNING: 1 line is improperly formatted
[Documents]$

Conclusión

md5sum es un comando simple que puede validar rápidamente uno o varios archivos para determinar si alguno de ellos ha cambiado con respecto al archivo original. Para obtener más información sobre md5sum, consulte su página de manual

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *