Comando Bash md5sum

Sheeraz Gul 20 junio 2023
  1. Comando Bash md5sum
  2. Use md5sum en varios archivos a la vez en Bash
  3. Use md5sum para mostrar archivos modificados en Bash
  4. Use md5sum para identificar valores hash no válidos en Bash
  5. Obtenga la salida md5sum sin un nombre de archivo en Bash
Comando Bash md5sum

Este tutorial demuestra cómo usar el comando md5sum en Bash.

Comando Bash md5sum

El comando md5sum imprime la suma de comprobación de 32 caracteres y 128 bits para el archivo dado. Este comando usa el algoritmo MD5 para convertir el archivo a hash; la sintaxis de este comando se encuentra a continuación.

md5sum [OPTION]... [FILEPATH]...

Intentemos ejecutar un comando simple md5sum para un archivo de texto que tenga el siguiente contenido:

Hello! this is md5sum command checking from delftstack.com

El nombre del archivo es delftstack1; el comando md5sum para este archivo será:

md5sum delftstack1.txt

El comando anterior convertirá el archivo delftstack1.txt en un hash md5. Vea el resultado:

7a09013df4a60cc5eda609d03008c547  delftstack1.txt

También podemos mostrar esta salida en formato BSD utilizando la opción --tag.

md5sum --tag delftstack1.txt

La salida de este comando será:

MD5 (delftstack1.txt) = 7a09013df4a60cc5eda609d03008c547

El md5sum tiene muchas opciones diferentes que se pueden utilizar. Consulte la tabla a continuación.

Columnas de la izquierda Columnas derechas
-b Se utiliza para leer el resultado en modo binario.
-c Se usa para leer MD5 de archivos dados y luego verificarlos.
–tag Se utiliza para obtener la salida en una suma de comprobación de estilo BSD.
-t Úselo para leer en modo texto, que también es el predeterminado.
–ignore-missing Se utiliza para ignorar el estado del informe de los archivos que faltan.
–quiet Se utiliza para detener la impresión de OK para cada archivo verificado con éxito.
–status Se usa para detener la salida de cualquier cosa en la que el código de estado muestre éxito.
–strict Se utiliza para salir de un valor distinto de cero para los archivos de suma de comprobación que tienen un formato incorrecto.
-w Se utiliza para advertir sobre los archivos de suma de comprobación que tienen un formato incorrecto.

El comando md5sum se puede usar de diferentes maneras, que incluyen usar md5 en varios archivos a la vez, mostrar solo los archivos modificados e identificar los valores hash no válidos.

Use md5sum en varios archivos a la vez en Bash

El md5sum también se puede utilizar para validar varios archivos simultáneamente. Vamos a crear dos archivos de texto más y luego intentar validar los tres archivos a la vez.

delftstack2.txt:

Hello! this is md5sum command checking from delftstack.com file 2

delftstack3.txt:

Hello! this is md5sum command checking from delftstack.com file 3

Ahora el comando para obtener el hash de varios archivos a la vez es:

md5sum delftstack1.txt delftstack2.txt delftstack3.txt > hashes

El comando anterior solo convertirá archivos a hash y no mostrará la salida. Para mostrar el resultado, necesitamos ejecutar el siguiente comando:

md5sum --check hashes

El comando anterior mostrará si los archivos se convirtieron con éxito a un hash. Ver la salida:

delftstack1.txt: OK
delftstack2.txt: OK
delftstack3.txt: OK

Use md5sum para mostrar archivos modificados en Bash

El comando md5sum también puede mostrar los archivos modificados mientras aplica md5sum en varios archivos. En primer lugar, para modificar el archivo, utilice el siguiente comando:

echo "!" >> delftstack1.txt

El comando anterior modificará el archivo delftstack1.txt. Ahora vamos a mostrar los archivos modificados usando las opciones md5sum.

Ver el comando:

md5sum --quiet --check hashes

El comando anterior buscará archivos modificados e imprimirá el nombre en la salida. Ver la salida:

delftstack1.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

Use md5sum para identificar valores hash no válidos en Bash

También podemos usar el comando md5sum con opciones para identificar los archivos no válidos. Para esto, usamos la opción -warn y el comando sed para insertar caracteres adicionales para invalidar un archivo.

Ver el primer comando:

sed -i '1s/.*/a&/' hashes

El comando anterior agregará caracteres de extracto a la primera línea de la salida. Vea el resultado de este comando:

sed: -e expression #1, char 2: extra characters after command

Ahora vamos a verificar el valor hash no válido usando el comando md5sum con las opciones --warn. Ver el comando:

md5sum --warn --check hashes

Lo anterior mostrará el archivo con valores hash no válidos en la salida. Ver la salida:

delftstack1.txt: FAILED
delftstack2.txt: OK
delftstack3.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match

Obtenga la salida md5sum sin un nombre de archivo en Bash

Como podemos ver, el md5sum devuelve la salida hash con su nombre de archivo, pero a veces es necesario obtener la salida sin un nombre de archivo para que podamos usarla más. La solución a esto es el comando awk, un lenguaje específico de dominio utilizado para el procesamiento de texto, la extracción de datos y las herramientas de generación de informes.

Siga los siguientes puntos para obtener la salida sin un nombre de archivo en Bash:

  1. Asignaremos la salida a una variable.
  2. Primero, ejecutamos md5sum en el archivo dado, usamos el comando awk e imprimimos $1.

Ver el comando:

DemoMD5= md5sum delftstack1.txt | awk '{ print $1 }'

Lo anterior solo devolverá la salida hash de la salida md5sum.

Producción :

698ac7ad395a9c887b1abf3c9ded7abe

Si no desea utilizar el comando awk, existe otro método en el que podemos obtener directamente la salida hash de md5sum sin el nombre del archivo. Asignamos la salida md5sum a una matriz y luego la imprimimos.

Ver los comandos:

DemoMD5=($(md5sum delftstack1.txt))
echo $DemoMD5

Los comandos anteriores también obtendrán directamente la salida hash sin el nombre de archivo para md5sum. Ver la salida:

698ac7ad395a9c887b1abf3c9ded7abe
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook