Un hachage Python MD5 est différent de celui créé par la commande md5sum sur le shell. Pourquoi?
>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python
$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
echo
pour avoir un-n
indicateur fonctionnel . POSIX dit ce qui suit à propos deecho
: "Si le premier opérande est-n
, ou si l'un des opérandes contient un<backslash>
caractère, les résultats sont définis par l'implémentation." (source: pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html ). Utilisezprintf
plutôt.md5sum
n'a pas d'importance ici. L'entrée le fait. Et sans-n
, echo ajoute un saut de ligne, ce qui entraîne un hachage différent.