Wie bekomme ich den MD5- Hash eines Strings direkt vom Terminal?
Zum Beispiel möchte ich, dass der String abcdefg
gehasht wird. Derzeit akzeptiert der Befehl md5sum nur einen Dateinamen als Eingabe. Ich möchte einfach die folgende Zeile eingeben und alles erledigen.
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Wie kann ich das erreichen?
command-line
md5sum
Hamed Momeni
quelle
quelle
md5 -s abcdefg
Antworten:
Sie können auch so etwas sagen:
Es macht im Grunde das Gleiche wie von @enzotib beschrieben, ist aber vielleicht ein bisschen einfacher.
quelle
83218ac34c1834c26781fe4bde918ee4 -
-n
obligatorisch ist. Ohne das wird Ihr Hash völlig falsch sein, da es das Newline-Zeichen enthält.-
am Ende ignorieren . @jfmessierSehr einfach, es akzeptiert Standard, also
So vermeiden Sie, dass die Shell nachgestellte Zeilenumbrüche hinzufügt:
quelle
<<<"
Pipe gerne in einem Skript verwenden.echo string
gewinnt für die Kommandozeile. Gut gemacht.printf
korrekte Verwendung . Wenn Sie die Summe ohne haben möchten-
, setzen Sie| cut -d ' ' -f 1
. Anwendungsbeispiel:sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1)
<<<
Operator und dieprintf
Funktion geben völlig unterschiedliche Ergebnisse für MD5-Hash! das ergebnis von printf ist aber richtig!<<<
Operator eine neue Zeile an die md5sum senden!Sie können ein Shell-Skript erstellen.
Der Skriptname lautet beispielsweise md5.sh:
Erlaubnis ausführen:
Dann:
Wenn Ihr System MacOS ist. Sie müssen dieses Skript ändern:
quelle
cut -d ' ' -f 1
md5() { echo -n $1 | md5sum | awk '{print $1}'; }
in .bashrc erstellt und kann sie dann$ md5 test
in der Befehlszeile verwenden. Danke für die Antwortawk
Anweisung:'$0=$1'
Wenn Sie md5sum ohne Argumente ausführen, wird die Eingabe vom Terminal gelesen. Geben oder fügen Sie ein, was Sie möchten. Wenn Sie fertig sind, drücken Sie
ctrl-d
, um die Eingabe zu beenden.quelle
ctrl+d
muss zweimal gedrückt werden , damit es funktioniert.Für String Pipe den Inhalt mit Echo
quelle
Mein kurzer Blick auf das
--help
Formd5sum
zeigt, dass der Befehl:wird dann eine Aufforderung zur einfachen Eingabe geben. Wenn Sie etwas Text eingeben und dann Enterund dann Ctrl+ verwenden D, um das Ende der Datei zu kennzeichnen
md5sum
, wird das MD5 des eingegebenen EnterRohtexts ausgespuckt (einschließlich CR, IIRC).Weniger zu tippen und keine Rohrleitungen! Und vermeiden Sie, dass Ihr Klartext-Passwort im Shell-Verlauf aufgezeichnet wird! Woo!
Wenn Sie diesen abschließenden CR nicht möchten (was normalerweise der Fall ist, wenn Sie ein Kennwort hacken möchten), drücken Sie nicht Entervor Ctrl+ D, sondern geben Sie zweimal Ctrl+ Dein.
quelle
In meinen Skripten habe ich festgestellt, dass es zwei Dinge gibt, die Sie über dieses Problem wissen sollten.
echo "$myvariable"
oder nicht,echo -n "$myvariable"
aber Sie sollten immer die doubleqoutes für Zeichenfolgen verwenden und immer die gleiche Methode verwenden. wenn nicht, passen die Dinge nicht zusammen.In der Ausgabe erhalten Sie immer ein Leerzeichen und einen Bindestrich, wie im Beispiel gezeigt:
Um das loszuwerden und nur mit dem Code zu bleiben
7803ffcaea43bb81a439fde13b29bc35
, mache:echo "$myvariable" | md5sum | cut -d" " -f1
quelle
-n
Parameter hier nicht, um zu vermeiden, dass die nachgestellte Newline ausgegeben wird, was zu einem falschen md5 führen würde:echo -n $myvariable | md5sum | cut -d" " -f1
Es gibt viele Beispiele dafür, aber einige davon sind nicht gleichwertig, da einige explizit oder implizit den Zeilenumbruch enthalten und andere nicht.
Ich möchte klar spezifizieren, welche der populären Methoden die Newline beinhaltet und welche nicht.
Hier einige Beispiele zur Berechnung des md5- Hash OHNE nachfolgende Newline (CORRECT):
Verwenden einer Datei mit Text:
Hinweis:
-n
inecho
bedeutet: "Keine abschließenden Zeilenumbrüche ausgeben".Verwendung
echo
mit-n
Inline:Verwenden von
printf
:Verwenden Sie nur den
md5sum
Befehl:(Lassen Sie uns schreiben
md5sum
, drücken Sie Enterdann schreiben Zeichenfolgetest
und drücken Sie dann die doppelte Kombination Ctrl+ d)Mit
md5sum -
Befehl:(Lassen Sie uns schreiben
md5sum -
, drücken Sie Enterdann schreiben Zeichenfolgetest
und drücken Sie dann die doppelte Kombination Ctrl+ d)Hier sind einige Beispiele für die Berechnung des MD5- Hash mit nachgestelltem Zeilenumbruch (SO NOT CORRECT):
Verwenden einer Datei mit Text:
Mit
echo
OHNE-n
inline:Verwenden Sie hier Zeichenfolgen :
Verwenden Sie nur den
md5sum
Befehl, aber mit der EnterTaste, nachdem Sie den Text geschrieben haben:(Lassen Sie uns schreiben
md5sum
, drücken Sie Enterdann schreiben Zeichenfolgetest
und drücken Sie dann wieder Enterund einmal Kombination Ctrl+ d)Verwenden des
md5sum -
Befehls aber mit der EnterTaste nach dem Schreiben des Textes:(Lassen Sie uns schreiben
md5sum -
, drücken Sie Enterdann schreiben Zeichenfolgetest
und drücken Sie dann wieder Enterund einmal Kombination Ctrl+ d)quelle