Un hash Python MD5 es diferente al creado por el comando md5sum en el shell. ¿Por qué?
>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python
$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
echo
para tener una-n
bandera que funcione . POSIX dice lo siguiente sobreecho
: "Si el primer operando es-n
, o si alguno de los operandos contiene un<backslash>
carácter, los resultados están definidos por la implementación". (fuente: pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html ). Úselo en suprintf
lugar.md5sum
no importa aquí. La entrada lo hace. Y sin-n
, echo agrega un salto de línea, lo que da como resultado un hash diferente.