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

echopara tener una-nbandera 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 suprintflugar.md5sumno importa aquí. La entrada lo hace. Y sin-n, echo agrega un salto de línea, lo que da como resultado un hash diferente.