コマンドラインハッシュがオンラインMD5ハッシュの結果と異なるのはなぜですか?


21

のMac OS X 10.5(Leopardの)のPowerPC、私がしなければ:

echo "hello" | md5
コマンドラインでは、結果は次のようになります。

b1946ac92492d2347c6235b4d2611184

しかし、http//md5online.net/のようなオンラインMD5ハッシュサイトの1つにhelloと入力すると、次のようになります。

5d41402abc4b2a76b9719d911017c592

私は何か間違っていますか?外出先でMD5を使用したい場合、コマンドラインで取得しているものがオンラインのmd5ツールと一致することを確認するにはどうすればよいですか?


Total CommanderがMD5チェックサムを作成するWindowsで動作します。オンライン版と同じ。
スナーク

ありがとう、スナーク。Rudedogは、少なくともPOSIXシステムでコマンドラインでmd5を使用する場合の問題を解決しました。可能であれば、彼に+1を与えます。私はあまりにも新しいです。
pellea72 09年

回答:


40

コマンドラインからエコーすると、md5は6文字(h、e、l、l、oと改行)の合計を計算しています。Webサイトに入力するテキストには改行がありません。

やってみて

echo -n hello | md5

そして、あなたが期待するものを提供します。-nは、改行を出力しないようにエコーに指示します。


おっとっと。「-n」タグに気付きませんでした。あなたは正しいRudedogです。うまくいきました。ありがとう。
pellea72 09年

3

echoの代わりにprintfを使用することもできます。これにより、改行文字が自動的に抑制されます。

printf hello | md5

あるいは:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184は文字列だけのmd5です

hello

5d41402abc4b2a76b9719d911017c592は、md5の

hello

CR + LF

CR + LFはWindowsの改行です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.