Введение
Пакет GNU coreutils предоставляет администраторам универсальный инструмент basenc, объединяющий алгоритмы преобразования текстовой и бинарной информации. В отличие от стандартной утилиты base64, здесь под единым интерфейсом доступны Base32, Base16, Base64URL и алгоритм Z85. Ниже подробно разбираются принципы работы утилиты и сценарии ее практического применения в командной строке.
1. Архитектура basenc: обработка форматов Base64 и Base32
Сформируем тестовый файл с исходной строкой, выполнив echo 'Hello Ubuntu Linux!' > sample.txt.

Утилита basenc выступает универсальным комбайном для трансформации данных по спецификациям Base64, Base32, Z85 и ряду других.
Для представления содержимого файла в каноническом виде Base64 достаточно вызвать basenc --base64 sample.txt.
⚙️ [Ключевые параметры запуска]
--base64 : кодирование потока по общему стандарту Base64.--base64url : генерация безопасного представления для URL и имен файлов.--base32 : трансляция байтов в алфавит Base32.--base32hex : применение расширенной шестнадцатеричной таблицы Base32.--base16 : конвертация байтов в шестнадцатеричное представление (HEX).--z85 : кодирование блоков данных по спецификации ZeroMQ Z85.-d, --decode : обратная десериализация (раскодирование) в исходный поток.-i, --ignore-garbage : пропуск невалидных символов при распаковке.-w, --wrap=COLS : принудительный перенос строк через заданное число знаков.

С помощью команды basenc --base32 sample.txt данные преобразуются в цепочку символов латиницы верхнего регистра и цифр от 2 до 7.
Несмотря на увеличение итогового объема строки по сравнению с Base64, алгоритм Base32 исключает проблемы при передаче через регистронезависимые файловые системы и сетевые протоколы.

2. Безопасный веб-формат Base64URL и шестнадцатеричный Base16
Для проверки кодирования параметров с разделителями создадим файл с имитацией веб-токена: echo 'api_key=test+token/value==' > web_token.txt.

Вызов basenc --base64url web_token.txt преобразует строку в формат Base64URL, пригодный для использования в URI-запросах и заголовках.
Стандарт заменяет спецсимволы + и /, вызывающие ошибки разбора маршрутов на веб-серверах, на дефис и подчеркивание, устраняя необходимость повторного URL-экранирования.

Команда basenc --base16 sample.txt выполняет прямое преобразование байтов в последовательность шестнадцатеричных пар.
Этот режим формирует наглядный дамп символов в кодировке ASCII, упрощая инспекцию бинарных структур и заголовков пакетов.

3. Битовый поток Base2 и компактное кодирование Z85
Поскольку алгоритм Z85 оперирует блоками, кратными 4 байтам, подготовим входной буфер ровно из четырех символов: printf 'Test' > z85_input.txt.

Команда basenc --z85 z85_input.txt кодирует полученный блок по алгоритму ZeroMQ.
Каждые 4 байта (32 бита) исходных данных компактно сворачиваются в 5 печатных ASCII-символов, выдавая строку raQb).

Для инспекции двоичной структуры отдельного символа выполним echo -n 'A' | basenc --base2msbf.
Символ A преобразуется в битовую маску с порядком следования от старшего бита к младшему (MSBF), возвращая прямое значение байта 01000001.

4. Декодирование флагом -d и конвейерная обработка потоков
Для тестирования процедуры восстановления закодируем строку и сохраним результат командой echo 'SGVsZG8gVWJ1bnR1IExpbnV4IQo=' > encoded.b64.

Опция -d переводит утилиту в режим декодирования: basenc -d --base64 encoded.b64.
В терминал возвращается исходный незашифрованный текст без искажения структуры строк.

Команда echo 'Cloud Computing' | basenc --base32 | basenc -d --base32 демонстрирует потоковую трансформацию внутри стандартного пайплайна Bash (|).
Такой подход позволяет кодировать и моментально восстанавливать полезную нагрузку в оперативной памяти без записи промежуточных данных на накопитель.

Утилита basenc закрывает большинство задач по представлению данных в различных системах счисления и транспортных алфавитах. Гибкий выбор целевого алгоритма делает ее незаменимым инструментом системного инженера при отладке API и анализе сетевого трафика.