Um hash Python MD5 é diferente daquele criado pelo comando md5sum no 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
que terá um-n
sinalizador viável . POSIX diz o seguinte sobreecho
: "Se o primeiro operando for-n
, ou se algum dos operandos contiver um<backslash>
caractere, os resultados serão definidos pela implementação." (fonte: pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html ). Use em seuprintf
lugar.md5sum
não importa aqui. A entrada sim. E sem-n
, echo acrescenta uma quebra de linha, o que resulta em um hash diferente.