¿Cómo obtener el hash MD5 de una cadena directamente en el terminal?

151

¿Cómo obtengo el hash MD5 de una cadena directamente desde el terminal?

Por ejemplo, quiero la cadena abcdefg hash. Actualmente, el comando md5sum solo acepta un nombre de archivo como entrada. Quiero simplemente ingresar la siguiente línea y hacer todo con.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

¿Cómo puedo lograr eso?

    
pregunta Hamed Momeni 20.07.2011 - 13:08

7 respuestas

197

También puedes decir algo como esto:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

Básicamente hace lo mismo que describe @enzotib, pero es quizás un poco más simple.

    
respondido por el jfmessier 20.07.2011 - 13:47
58

Muy simple, acepta stdin, por lo que

md5sum <<<"my string"

Para evitar la nueva línea final agregada por el shell:

printf '%s' "my string" | md5sum
    
respondido por el enzotib 20.07.2011 - 13:10
21
$ echo -n 123456 | md5sum | awk '{print }'
e10adc3949ba59abbe56e057f20f883e

puedes crear un script de shell.

Por ejemplo, el nombre del script es md5.sh:

#!/bin/bash

echo   -n    | md5sum | awk '{print }'

permiso de ejecución:

 chmod +x md5.sh

Entonces:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

Si su sistema es macOS. Necesita modificar esta secuencia de comandos:

$ echo -n 123456 | md5 | awk '{print }' 
e10adc3949ba59abbe56e057f20f883e
    
respondido por el ty4z2008 09.03.2015 - 05:54
9

Ejecutar md5sum sin argumentos hará que lea la entrada desde el terminal. Escriba o pegue lo que desee, y cuando termine, presione ctrl-d para finalizar la entrada.

    
respondido por el psusi 27.07.2011 - 17:46
8
openssl md5 filename
openssl sha1 filename

Para cadena, el contenido que usa eco

echo -n 123456 | openssl md5
    
respondido por el guest 10.12.2015 - 12:13
3

Mi rápida inserción en --help para md5sum demuestra que el comando:

md5sum -

dará un aviso para una entrada simple. Ingresando un texto y luego usando Ingrese y luego Ctrl + D para indicar el final del archivo y luego hace que md5sum escuche el MD5 del texto sin procesar que ingresó (incluido ese Ingresar , es un CR, IIRC).

¡Menos para escribir y sin tuberías! ¡Y evitar que su contraseña de texto plano se grabe en el historial de shell! ¡Woo!

Si no desea esa CR pendiente (que generalmente es el caso si quiere cifrar una contraseña), no presione Enter antes de Ctrl + D , ingrese Ctrl + D dos veces en su lugar.

    
respondido por el Will 21.08.2013 - 08:00
2

En mis guiones, descubrí que hay dos cosas que debes saber sobre este tema.

  • No importa si haces echo "$myvariable" o echo -n "$myvariable" pero siempre debe usar doubleQoutes para cadenas y siempre usar el mismo método. si no, las cosas no coincidirán.
  • en el resultado siempre se obtiene un espacio al final y un guión como se muestra en el ejemplo:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

para deshacerse de eso y quedarse solo con el código 7803ffcaea43bb81a439fde13b29bc35 , do: echo "$myvariable" | md5sum | cut -d" " -f1

    
respondido por el Bodo Hugo Barwich 02.08.2014 - 15:39

Lea otras preguntas en las etiquetas