1. ホーム
  2. python

[解決済み] Pythonで作成したMD5ハッシュとシェルでechoやmd5sumを使って作成したハッシュはなぜ違うのですか?

2022-11-10 11:25:19

質問

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 を追加します。通常、シェルでは改行で終わらない行は不要です (プロンプトが左端で始まらない場合、非常に醜く見えます)。

を使用します。 -n 引数で最後の改行を省略すると、Pythonスクリプトと同じチェックサムが表示されます。

> echo -n mystringforhash | md5sum
86b6423cb6d211734fc7d81bbc5e11d3  -