Ich möchte ein Bash-Skript schreiben, um einen Base64-String zu dekodieren. Zum Beispiel tippe ich decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
und es druckt Aladdin:open sesame
und kehrt zur Eingabeaufforderung zurück.
Bisher habe ich eine einfache Bash-Datei ausprobiert, die python -m base64 -d $1
jedoch einen Dateinamen und keine Zeichenfolge erwartet. Gibt es einen anderen nicht interaktiven Befehl (nicht unbedingt in einem Python-Modul), den ich über die Befehlszeile ausführen kann, um dies zu erreichen, ohne zusätzliche Pakete installieren zu müssen? (Oder wenn ich es tue, etwas Super-Minimales.)
command-line
bash
david.libremone
quelle
quelle
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
Unter Windows mit gits base64.Just use
, da viele Leute mit dembase64
Programm vertraut sind - aber da man nicht einfach eine Zeichenfolge als Befehlszeilenoption einfügen kann , ist es für Benutzer, die die CLI nur gelegentlich berühren, schwierig, die richtige Syntax zu finden.pbpaste | base64 --decode
.openssl kann base64 auch codieren und decodieren
BEARBEITEN: Ein Beispiel, in dem der base64-codierte String in mehreren Zeilen endet:
quelle
coreutils
ein „zusätzliches“ Paket mit Programmen wiels
,mkdir
,cp
,mv
, undchmod
. Ich bezweifle, dass Sie ohne Ihre Maschine etwas Nützliches tun können.openssl
hat jedoch den Vorteil, dassbase64
sie in Git Bash unter Windows funktioniert, zumindest in der älteren Version 1.8.1 Git Bash, die ich installiert habe.Bitte schön!
Fügen Sie am Ende Ihrer
~/.bashrc
Datei Folgendes hinzu :Öffnen Sie nun ein neues Terminal und führen Sie den Befehl aus.
Dies wird genau das tun, was Sie in Ihrer Frage gefragt haben.
quelle
Bei Ihren ursprünglichen Abhängigkeiten ist dies mit einer geringfügigen Änderung Ihres ursprünglichen Skripts möglich:
Wenn Sie keinen Dateinamen übergeben, liest das Python-Modul von der Standardeingabe. Um den ersten Parameter einzugeben, können Sie verwenden
echo $1 |
.quelle
Ich habe die base64-Befehlszeile in http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities kommentiert . Deshalb gebe ich eine Warnung aus, wenn ich OpenSSL Base64-Dekodierung verwende:
In openssl ist die Zeilenlänge von base64 standardmäßig auf 64 Zeichen begrenzt :
=> NICHTS!
Um eine Base64-Zeile ohne Zeilenvorschub mit mehr als 64 Zeichen zu dekodieren, verwenden Sie die Option -A:
Dies ist ohnehin besser, um das base64-Ergebnis in 64-Zeichen-Zeilen aufzuteilen, da die Option -A auf BUGGY (Limit bei langen Dateien) gesetzt ist.
quelle
Verwenden
perl
Oder das selbe mit
python
quelle
Nur um einen anderen Weg hinzuzufügen:
quelle