GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der MD5-Hashwert unterscheidet sich von Bash und PHP

Die Antwort von @Cyrus ist genau auf den Punkt gebracht, wie dies gelöst werden kann - um dies zu erklären, wenn echo verwendet wird Es wird ein Zeilenumbruch am Ende der Zeichenfolge ausgegeben. Wie Sie in dieser Online-Ausgabe sehen können, hello mit einem Zeilenumbruch gibt genau das MD5 aus, das Sie zuvor erhalten haben. Mit -n unterdrückt den Zeilenumbruch und liefert dann das erwartete Ergebnis.

Bearbeiten :

Sie können es deutlich sehen, wenn Sie es auf hexdump ausgeben , die den Hexadezimalwert der dortigen Bytes anzeigt.

$ echo "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65 0a              |str_example.|

Siehe 0a (\n ) am Ende der Zeichenfolge

$ echo -n "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65                 |str_example|

Mit -n echo fügt keine neue Zeile ein (\n ) am Ende

Jetzt mit leerem String

$ echo  "" | hd
00000000  0a                                                |.|

Nur das Neue-Zeile-Zeichen

$ echo -n  "" | hd

Leerer String, also hexdump zeigt keine Ausgabe


Standardmäßig echo enthält ein Zeilenumbruchzeichen am Ende der Ausgabe. PHP und die von Ihnen verwendeten Online-Sites enthalten jedoch keinen Zeilenumbruch. Um das Zeilenumbruchzeichen zu unterdrücken, verwenden Sie den -n Flagge:

echo -n "hello" | md5sum

Ausgabe:

5d41402abc4b2a76b9719d911017c592  -

Siehe:help echo

oder mit printf:

printf "%s" "hello" | md5sum

Linux
  1. Übereinstimmende Zeile und N-te Zeile von der Übereinstimmenden Zeile drucken?

  2. Generieren eines SHA-256-Hashs über die Linux-Befehlszeile

  3. Variable in Bash-Skript, die ihren Wert von der letzten Ausführung beibehält

  4. Verzeichnis aus Dateiname erstellen und Bash verschieben

  5. Bash-Shell-Skript - Suchen Sie nach einem Flag und holen Sie sich seinen Wert

DER EINFACHE WEG, wie man SSH in Bash und WSL2 unter Windows 10 von einem externen Computer aus macht

Die 30 besten Linux-Terminalemulatoren und Bash-Editoren

Wiederherstellen von stdout und stderr auf die Standardwerte

Variablenbereich für Bash-Shell-Skripte und Funktionen im Skript

Wie kann ich die letzte Zahl von String in Bash bekommen?

Exportieren Sie eine Variable aus Bash und verwenden Sie sie in Python