Inconsistencias en las sumas de verificación MD5

Inconsistencias en las sumas de verificación MD5

Estoy intentando obtener el hash md5 de una cadena. Dicha cadena consta únicamente de letras y dígitos mayúsculas y minúsculas. Ningún otro carácter, incluidos espacios y nuevas líneas. La cadena se ingresa a través de un teclado, en lugar de una entrada de archivo, por lo que no hay BOM ni otros indicadores presentes.

Si ejecuto localmente usando md5sumobtengo el siguiente resultado:

ubuntu@ubuntu:~$ echo word | md5sum 
a46ec67a0f2e7c387926ac5d783ea4b8 - 

ubuntu@ubuntu:~$ echo "word" | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8  - 

ubuntu@ubuntu:~$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -

Conozco la diferencia entre la segunda y la tercera salida anteriores.se debe a la ausencia del carácter de nueva línea( -n).esta parte me queda clara. (¡Resulta que no fue así! Vea la respuesta aceptada).

Sin embargo, existen herramientas que dan un tercer resultado. Todas las herramientas que no son CLI parecen darlo mismoresultado, y eso es lo que me confunde:

¿Que está pasando aqui?

Respuesta1

$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "word -n" | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "-n" word | md5sum
c47d187067c6cf953245f128b5fde62a  -

Específicamente, tenga en cuenta que:

$ echo "word" -n
word -n

Todas las opciones deben anteponerse a los argumentos que no son opciones. Este es el caso en la mayoría de los programas, excepto en algunas utilidades GNU, y es el caso en todas las implementaciones de echo( echosin embargo, es especial porque la mayoría de las cadenas que comienzan con -se interpretan como argumentos, solo unas pocas opciones se reconocen como tales).

información relacionada