Inkonsistenzen bei MD5-Prüfsummen

Inkonsistenzen bei MD5-Prüfsummen

Ich versuche, den MD5-Hash einer Zeichenfolge zu erhalten. Die Zeichenfolge besteht nur aus Groß- und Kleinbuchstaben sowie Ziffern. Keine anderen Zeichen, einschließlich Leerzeichen und Zeilenumbrüche. Die Zeichenfolge wird über eine Tastatur und nicht über eine Datei eingegeben, daher sind weder BOM noch andere Flags vorhanden.

Wenn ich es lokal ausführe, md5sumerhalte ich die folgende Ausgabe:

ubuntu@ubuntu:~$ echo word | md5sum 
a46ec67a0f2e7c387926ac5d783ea4b8 - 

ubuntu@ubuntu:~$ echo "word" | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8  - 

ubuntu@ubuntu:~$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -

Ich kenne den Unterschied zwischen der 2. und 3. Ausgabe obenliegt am Fehlen des Zeilenumbruchzeichens( -n).Dieser Teil ist mir klar. (Es stellte sich heraus, dass dies nicht der Fall war! Siehe die akzeptierte Antwort.)

Es gibt jedoch Tools, die ein drittes Ergebnis liefern. Alle Nicht-CLI-Tools scheinen zu lieferndas gleicheErgebnis, und das ist es, was mich verwirrt:

Was ist denn hier los?

Antwort1

$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "word -n" | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "-n" word | md5sum
c47d187067c6cf953245f128b5fde62a  -

Beachten Sie insbesondere Folgendes:

$ echo "word" -n
word -n

Alle Optionen müssen vor Argumenten ohne Optionen stehen. Dies ist in den meisten Programmen mit Ausnahme einiger GNU-Dienstprogramme der Fall und gilt für alle Implementierungen von echo( echoist jedoch insofern besonders, als die meisten Zeichenfolgen, die mit beginnen, -als Argumente interpretiert werden, nur wenige Optionen werden als solche erkannt).

verwandte Informationen