Warum unterscheidet sich mein Befehlszeilen-Hash von den Online-MD5-Hash-Ergebnissen?

21

Auf einem PowerPC mit Mac OS X 10.5 (Leopard):

Echo "Hallo" | md5
In der Befehlszeile lautet das Ergebnis:

b1946ac92492d2347c6235b4d2611184

Aber wenn ich Hallo in eine der Online-MD5-Hash-Sites wie http://md5online.net/ eingebe , erhalte ich:

5d41402abc4b2a76b9719d911017c592

Mache ich etwas falsch? Wenn ich MD5 unterwegs verwenden möchte, wie kann ich sicherstellen, dass das, was ich über die Befehlszeile erhalte, mit den Online-Tools von md5 übereinstimmt?

pellea72
quelle
Funktioniert für mich unter Windows mit Total Commander, wobei die MD5-Prüfsumme erstellt wird. Entspricht der Online-Version.
Snark
Danke, Snark. Rudedog löste das Problem, wenn md5 in der Befehlszeile verwendet wurde, zumindest für POSIX-Systeme. Gib ihm eine +1, wenn du kannst. Ich bin zu neu
Pellea72,

Antworten:

40

Wenn Sie über die Befehlszeile ein Echo ausgeben, berechnet md5 die Summe von 6 Zeichen - h, e, l, l, o plus Newline. Der Text, den Sie in eine Website eingeben, enthält keine neue Zeile.

Versuchen Sie es

echo -n hello | md5

und es wird dir geben, was du erwartest. Das -n weist das Echo an, keine neue Zeile auszugeben.

Rudedog
quelle
Hoppla. Das '-n'-Tag ist mir nicht aufgefallen. Du hast recht Rudedog. Das hat funktioniert. Vielen Dank.
Pellea72
3

Sie können auch printf anstelle von echo verwenden, wodurch das Zeilenumbruchzeichen automatisch unterdrückt wird:

printf hello | md5

Oder auch:

printf "hello" | md5
TrekCzar
quelle
2

b1946ac92492d2347c6235b4d2611184 ist das md5 nur der Zeichenfolge

hello

5d41402abc4b2a76b9719d911017c592 ist der md5 von

hello

CR + LF

CR + LF ist der Windows Newline.

user1863
quelle
1

Um meine 5 Cent hinzuzufügen und die Antwort zu erweitern: in Linux ist md5 nicht, ist md5sum, also solltest du tun:

echo -n hello | md5sum
Simon Ernesto Cardenas Zarate
quelle