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

5973
pellea72

Auf einem Mac OS X v10.5 (Leopard) PowerPC, wenn ich tun:

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

b1946ac92492d2347c6235b4d2611184 

Wenn ich jedoch hallo in eine der Online-MD5-Hash-Sites wie http://md5online.net/ eingebe, erhalte ich Folgendes:

5d41402abc4b2a76b9719d911017c592 

Mache ich etwas falsch? Wenn ich MD5 unterwegs verwenden möchte, wie kann ich sicherstellen, dass die Befehlszeilen mit den Online-Tools von md5 übereinstimmen?

18
Funktioniert für mich unter Windows mit Total Commander, um die MD5-Prüfsumme zu erstellen. Gleich wie die Online-Version. Snark vor 14 Jahren 0
Danke, Snark. Rudedog löste das Problem bei der Verwendung von md5 in der Befehlszeile, zumindest für POSIX-Systeme. Gib ihm +1, wenn du kannst. Ich bin zu neu pellea72 vor 14 Jahren 0

3 Antworten auf die Frage

36
Rudedog

Wenn Sie von der Befehlszeile aus ein Echo ausführen, berechnet md5 die Summe von 6 Zeichen - h, e, l, l, o plus Zeilenvorschub. Der Text, den Sie in eine Website eingeben, enthält keinen Zeilenumbruch.

Versuchen Sie es zu tun

echo -n hello | md5 

und es wird Ihnen geben, was Sie erwarten. Das -n teilt dem echo mit, dass es keinen Zeilenvorschub geben soll.

Hoppla. Ich habe das "-n" -Tag nicht bemerkt. Du hast recht Rudedog. Das hat funktioniert. Vielen Dank. pellea72 vor 14 Jahren 0
3
TrekOnTV2017

Sie können statt echo auch printf verwenden, wodurch das Zeilenvorschubzeichen automatisch unterdrückt wird:

printf hello | md5 

Oder auch:

printf "hello" | md5 
2
user1863

b1946ac92492d2347c6235b4d2611184 ist der MD5 von nur der Zeichenfolge

hello 

5d41402abc4b2a76b9719d911017c592 ist der MD5 von

hello

CR + LF

CR + LF ist die Windows-Newline.