Я хотел бы написать сценарий bash для декодирования строки base64. Например, я печатаю, decode QWxhZGRpbjpvcGVuIHNlc2FtZQ==
и он печатает Aladdin:open sesame
и возвращает к приглашению.
До сих пор я пробовал простой bash-файл, содержащий, python -m base64 -d $1
но эта команда ожидает имя файла, а не строку. Есть ли другая неинтерактивная команда (не обязательно в модуле Python), которую я могу запустить из командной строки, чтобы добиться этого, без необходимости устанавливать какие-либо дополнительные пакеты? (Или, если я делаю, что-то супер-минимальное.)
command-line
bash
david.libremone
источник
источник
base64 -d <<< QWxhZGRpbjpvcGVuIHNlc2FtZQ==
echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | "C:\Program Files\Git\usr\bin\base64" --decode 2> nul > example.txt
В Windows с git base64.Just use
, потому что многие люди знают оbase64
программе, но так как нельзя просто вставить строку в качестве параметра командной строки, сложно получить правильный синтаксис для пользователей, которые время от времени касаются интерфейса командной строки.pbpaste | base64 --decode
.openssl также может кодировать и декодировать base64
РЕДАКТИРОВАТЬ: пример, где закодированная в base64 строка заканчивается на несколько строк:
источник
coreutils
«дополнительный» пакет , содержащий программы , такие какls
,mkdir
,cp
,mv
иchmod
. Я сомневаюсь, что вы можете сделать что-нибудь полезное с вашей машиной без нее.openssl
имеет преимущество перед стандартнымbase64
режимом работы в Git Bash на Windows, по крайней мере, на более старой версии 1.8.1 Git Bash, которую я установил.Ну вот!
Добавьте следующее в конец вашего
~/.bashrc
файла:Теперь откройте новый терминал и выполните команду.
Это сделает именно то, что вы просили в своем вопросе.
источник
С вашими исходными зависимостями это можно сделать с незначительной модификацией вашего исходного скрипта:
Если вы не передаете имя файла, этот модуль python читает из стандартного ввода. Для передачи первого параметра в него вы можете использовать
echo $1 |
.источник
Я прокомментировал командную строку base64 в http://wiki.opensslfoundation.com/index.php?title=Command_Line_Utilities . Поэтому я выдаю предупреждение при использовании декодирования openssl base64:
предупреждение Длина строки base64 ограничена 64 символами по умолчанию в openssl :
=> НИЧЕГО!
чтобы иметь возможность декодировать строку base64 без перевода строки, длина которого превышает 64 символа, используйте параметр -A:
В любом случае это лучше, если разделить результат base64 на 64 строки символов, так как опция -A - BUGGY (ограничение для длинных файлов).
источник
С помощью
perl
Или то же самое с
python
источник
Просто чтобы добавить другой способ сделать это:
источник