Saya ingin menulis skrip bash untuk memecahkan kode string base64. Misalnya saya mengetik decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
dan mencetak Aladdin:open sesame
dan kembali ke prompt.
Sejauh ini saya telah mencoba file bash sederhana yang berisi python -m base64 -d $1
tetapi perintah ini mengharapkan nama file bukan string. Apakah ada perintah non-interaktif lain (tidak harus dalam modul Python) yang dapat saya jalankan dari baris perintah untuk mencapai ini, tanpa harus menginstal paket tambahan? (Atau jika saya lakukan, sesuatu yang super-minimal.)
command-line
bash
david.libremone
sumber
sumber
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
Di Windows dengan base64 git.Just use
, karena banyak orang tahu tentangbase64
program - tetapi karena seseorang tidak bisa hanya memasukkan string sebagai opsi baris perintah, sulit untuk mendapatkan sintaks yang tepat untuk pengguna yang menyentuh CLI hanya sesekali.pbpaste | base64 --decode
.openssl juga dapat menyandikan dan mendekode base64
EDIT: Contoh di mana string yang disandikan base64 berakhir pada beberapa baris:
sumber
coreutils
sebuah "tambahan" paket yang berisi program-program sepertils
,mkdir
,cp
,mv
, danchmod
. Saya ragu Anda dapat melakukan apa pun yang berguna dengan mesin Anda tanpa itu.openssl
memiliki keunggulan dibandingkan standarbase64
bekerja di Git Bash pada Windows, setidaknya versi 1.8.1 Git Bash yang lebih lama telah saya instal.Ini dia!
Tambahkan berikut ini ke bagian bawah
~/.bashrc
file Anda :Sekarang, buka Terminal baru dan jalankan perintah.
Ini akan melakukan apa yang Anda minta dalam pertanyaan Anda.
sumber
Dengan dependensi asli Anda, dimungkinkan untuk melakukan ini dengan sedikit modifikasi pada skrip asli Anda:
Jika Anda tidak memberikan nama file, modul python itu membaca dari input standar. Untuk menyalurkan parameter pertama ke dalamnya Anda dapat menggunakan
echo $1 |
.sumber
Saya melakukan komentar pada baris perintah base64 di http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities . Jadi saya mengeluarkan Peringatan ketika menggunakan decoding openssl base64:
panjang dasar base64 peringatan dibatasi hingga 64 karakter secara default di openssl :
=> TIDAK ADA!
untuk dapat memecahkan kode garis base64 tanpa umpan baris yang melebihi 64 karakter gunakan opsi -A:
Ini tetap lebih baik untuk benar-benar membagi hasil base64 di baris 64 karakter karena -A opsi adalah BUGGY (batas dengan file yang panjang).
sumber
Menggunakan
perl
Atau sama dengan
python
sumber
Hanya dengan menambahkan cara lain untuk melakukannya:
sumber