Chciałbym napisać skrypt bash, aby zdekodować ciąg base64. Na przykład piszę, decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
a drukuje Aladdin:open sesame
i wraca do monitu.
Do tej pory próbowałem prostego pliku bash zawierającego, python -m base64 -d $1
ale to polecenie oczekuje, że nazwa pliku nie jest łańcuchem. Czy istnieje inne nieinteraktywne polecenie (niekoniecznie w module Python), które mogę uruchomić z wiersza poleceń, aby to osiągnąć, bez konieczności instalowania dodatkowych pakietów? (Lub jeśli to zrobię, coś bardzo minimalnego.)
command-line
bash
david.libremone
źródło
źródło
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
W systemie Windows z base64 gita.Just use
, ponieważ wiele osób wie obase64
programie - ale ponieważ nie można po prostu wstawić ciągu jako opcji wiersza poleceń, trudno jest uzyskać odpowiednią składnię dla użytkowników, którzy dotykają CLI tylko raz na jakiś czas.pbpaste | base64 --decode
.openssl może również kodować i dekodować base64
EDYCJA: Przykład, w którym ciąg zakodowany w base64 kończy się na wielu liniach:
źródło
coreutils
to „dodatkowy” pakiet zawierający programy takie jakls
,mkdir
,cp
,mv
, ichmod
. Wątpię, czy możesz zrobić cokolwiek pożytecznego z urządzeniem bez tego.openssl
ma przewagę nad standardembase64
pracy w Git Bash w systemie Windows, przynajmniej starszą wersję 1.8.1 Git Bash, którą zainstalowałem.Proszę bardzo!
Dodaj następujące elementy na dole
~/.bashrc
pliku:Teraz otwórz nowy Terminal i uruchom polecenie.
To zrobi dokładnie to, o co prosiłeś w swoim pytaniu.
źródło
W przypadku oryginalnych zależności można to zrobić z niewielką modyfikacją oryginalnego skryptu:
Jeśli nie podasz nazwy pliku, moduł Pythona odczytuje ze standardowego wejścia. Aby przesłać do niego pierwszy parametr, możesz użyć
echo $1 |
.źródło
Skomentowałem wiersz poleceń base64 w http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities . Dlatego używam ostrzeżenia podczas korzystania z dekodowania openssl base64:
ostrzeżenie base64 długość linii jest domyślnie ograniczona do 64 znaków w openssl :
=> NIC!
aby móc dekodować linię base64 bez wysuwu linii przekraczającą 64 znaki, użyj opcji -A:
Tak czy inaczej lepiej jest faktycznie podzielić wynik base64 na 64 znaki, ponieważ -A opcja to BŁĄD (limit przy długich plikach).
źródło
Za pomocą
perl
Lub to samo z
python
źródło
Aby dodać inny sposób:
źródło