Команда base32

Команда base32 позволяет задействовать одноименную утилиту, предназначенную для кодирования данных в соответствии со стандартом Base32. Этот стандарт менее распространен, чем стандарт Base64, хотя и очень похож на него. Вообще, от Base64 рассматриваемый стандарт отличается набором используемых символов (используются заглавные буквы A-Z, а также цифры 2-7), большей длиной строки закодированных данных, а также возможностью использования строки закодированных данных в качестве имени файла (специальный символ / не используется). Как и в случае стандарта кодирования данных Base64, стандарт Base32 должен использоваться лишь для перевода бинарных данных в текстовый формат — защитить данные с помощью подобного кодирования не получится.

Базовый синтаксис команды выглядит следующим образом:

$ base32 [параметры] [имя-файла]

По умолчанию утилита осуществляет кодирование данных. Она может получать данные как из файла с заданным именем, так и из стандартного потока ввода. Утилита может вызываться как без параметров, так и с ними. Наиболее полезным параметром является параметр -d, предназначенный для декодирования переданных данных.

Примеры использования

Кодирование/декодирование текстовой строки

Для кодирования текстовой строки в соответствии со стандартом Base32 достаточно передать эту строку с помощью стандартного потока ввода утилите.

$ echo 'Hello world' | base32
JBSWY3DPEB3W64TMMQFA====

Несложно заметить, что результат кодирования состоит лишь из прописных английских букв и цифр из диапазона 2-7. Знаки равенства используются в качестве заполнителя.

Для декодирования следует передать результат утилите, запущенной с параметром -d:

$ echo 'JBSWY3DPEB3W64TMMQFA====' | base32 -d
Hello world

В результате утилита декодирует исходную строку.

Кодирование/декодирование содержимого файла

Для того, чтобы закодировать содержимое файла, достаточно передать утилите имя этого файла.

$ echo 'Hello world from file' > testbase32
$ base32 testbase32 > testbase32enc
$ cat testbase32enc
JBSWY3DPEB3W64TMMQQGM4TPNUQGM2LMMUFA====

С помощью первой команды в файл testbase32 записывается строка Hello world from file. Вторая команда предназначена для кодирования этой строки из файла и сохранения результата в файле testbase32enc. С помощью третьей команды выводится содержимое результирующего файла.

Для декодирования содержимого файла достаточно использовать параметр -d и передать утилите имя этого файла:

$ base32 -d testbase32enc
Hello world from file

Очевидно, что содержимое файла было успешно декодировано. Разумеется, вывод утилиты может быть перенаправлен в файл аналогичным образом:

$ base32 -d testbase32enc > testbase32
$ cat testbase32
Hello world from file

Очевидно, что в файл была записана оригинальная раскодированная строка.