Warum gibt `md5sum` nicht den gleichen Hash wie das Internet?

8

Ich möchte den md5-Hash der Zeichenfolge "a" finden, aber das Ausführen echo "a" | md5sumgibt mir einen anderen Hash als den, den ich bekomme, wenn ich im Internet suche (zum Beispiel mit DuckDuckGo oder dem ersten Suchergebnis, das ich gefunden habe ).

Laufen echo "a" | md5sumgibt mir "60b725f10c9c85c70d97880dfe8191b3", aber es sollte "0cc175b9c0f1b6a831c399e269772661" sein.

Wenn ich eine umgekehrte Hash-Suche für "60b725f10c9c85c70d97880dfe8191b3" durchführe, erhalte ich jedoch "a".

Lindhe
quelle

Antworten:

15

Der Grund dafür, dass die Hashes unterschiedlich sind, ist, dass echoam Ende der Ausgabezeichenfolge eine neue Zeile eingefügt wird, um sie hübsch zu machen. Dies kann durch das -nFlag (wenn Ihre Implementierung dies echounterstützt) oder durch die Verwendung eines anderen Programms (wie printf) verhindert werden:

> echo "a" | md5sum   
60b725f10c9c85c70d97880dfe8191b3  -

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

> printf "a" | md5sum 
0cc175b9c0f1b6a831c399e269772661  -
Lindhe
quelle
2
echoFügt der Ausgabe eine neue Zeile hinzu, um sie zu einer vollständigen Zeile zu machen, nicht um sie hübsch zu machen.
Kusalananda
@Kusalananda Durch Eingabe printf textwird der Text vor der nächsten Eingabeaufforderungszeile angezeigt.
NeverMind9