Unix的md5和Python的hashlib.md5有何不同?

2 投票
1 回答
1027 浏览
提问于 2025-04-17 21:35

我在Mac的终端里运行了 echo lol | md5,结果返回了:59bcc3ad6775562f845953cf01624225

但是我在Python 2.7里运行 print hashlib.md5("lol").hexdigest(),得到的是:9cdfb439c7876e703e307864c9167a15

我哪里出错了?

1 个回答

10

echo 命令默认会在最后加一个换行符,所以它生成的哈希值会不同。

在 Python 中,带有换行符的结尾

>>> print hashlib.md5("lol\n").hexdigest()
59bcc3ad6775562f845953cf01624225

标准的 echo 命令,省略了换行符的结尾。

$ echo -n lol | md5sum -
9cdfb439c7876e703e307864c9167a15  -

撰写回答