`md5sum`がインターネットと同じハッシュ値を提供しないのはなぜですか?

`md5sum`がインターネットと同じハッシュ値を提供しないのはなぜですか?

文字列 "a"のmd5ハッシュを探したいのですが、実行すると、echo "a" | md5sumインターネットで検索したときとは異なるハッシュが提供されます(例:ダックまたは私が見つけた最初の検索結果)。

実行するとecho "a" | md5sum「60b725f10c9c85c70d97880dfe8191b3」と表示されますが、「0cc175b9c0f1b6a831c399e269772661」である必要があります。

「60b725f10c9c85c70d97880dfe8191b3」のリバースハッシュ照会を実行すると、「a」が表示されます。

答え1

ハッシュが異なる理由は、echo出力文字列の末尾に改行文字を含めてきれいにするためです。これは-n、フラグ(実装がechoサポートしている場合)または他のプログラム(たとえばprintf)を使用して無効にすることができます。

> echo "a" | md5sum   
60b725f10c9c85c70d97880dfe8191b3  -

> echo -n "a" | md5sum
0cc175b9c0f1b6a831c399e269772661  -

> printf "a" | md5sum 
0cc175b9c0f1b6a831c399e269772661  -

関連情報