¿Por qué mi hash de línea de comandos es diferente de los resultados de hash MD5 en línea?


21

En un Mac OS X v10.5 (Leopard) PowerPC, si lo hago:

echo "hola" | md5
en la línea de comando, el resultado es:

b1946ac92492d2347c6235b4d2611184

Pero si ingreso hola en uno de los sitios de hash MD5 en línea como http://md5online.net/ , obtengo:

5d41402abc4b2a76b9719d911017c592

¿Estoy haciendo algo mal? Si quiero usar MD5 sobre la marcha, ¿cómo puedo asegurarme de que lo que obtengo en la línea de comandos concuerde con las herramientas md5 en línea?


Funciona para mí en Windows con Total Commander creando la suma de verificación MD5. Igual que la versión en línea.
Snark

Gracias Snark. Rudedog resolvió el problema al usar md5 en la línea de comando, al menos para los sistemas POSIX. Dale un +1 si puedes. Soy muy nuevo
pellea72

Respuestas:


40

Cuando haces eco desde la línea de comando, md5 está calculando la suma de 6 caracteres: h, e, l, l, o más nueva línea. El texto que ingresa en un sitio web no tiene una nueva línea.

Trata de hacerlo

echo -n hello | md5

y te dará lo que esperas. El -n le dice a echo que no envíe una nueva línea.


Ups No noté la etiqueta '-n'. Tienes razón, Rudedog. Eso funciono. Gracias.
pellea72

3

También puede usar printf en lugar de echo, que suprime automáticamente el carácter de nueva línea:

printf hello | md5

O incluso:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 es el md5 de solo la cadena

hello

5d41402abc4b2a76b9719d911017c592 es el md5 de

hello

CR + LF

CR + LF es la nueva línea de Windows.


1

Para agregar mis 5 centavos y extender la respuesta: en Linux no es md5, es md5sum, por lo que debería estar haciendo:

echo -n hello | md5sum
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.