Хеш Python MD5 отличается от хеша, созданного командой md5sum в оболочке. Зачем?
>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python
$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
echo
, имея работоспособный-n
флаг. В POSIX говорится следующееecho
: «Если первый операнд-n
или какой-либо из операндов содержит<backslash>
символ, результаты определяются реализацией». (источник: pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html ).printf
Вместо этого используйте .md5sum
здесь не имеет значения. Вход делает. И без него-n
echo добавляет перенос строки, что приводит к другому хешу.