Кодирование

Base32

Кодирование и декодирование Base32 (RFC 4648) — текст и файлы, прямо в браузере.

Base32, как и Base64, кодирует двоичные данные в текст, но использует алфавит всего из 32 символов (A-Z2-7) — без символов, которые легко перепутать при ручном вводе (0/O, 1/I). Поэтому Base32 чаще встречается там, где строку могут вводить люди, а не только копировать.

Как пользоваться

Типичные сценарии

Что стоит помнить

Base32 примерно на 60% увеличивает размер данных (против ~33% у Base64) — это компромисс ради более широкой совместимости с регистронезависимыми системами и ручным вводом.

Base32hex — отдельный вариант того же стандарта с другим алфавитом (0-9A-V), сохраняющим порядок сортировки, — несовместим с обычным Base32.

Статья об этом инструменте: Base32: чем отличается от Base64 и когда удобнее

Часто задаваемые вопросы

Чем Base32 отличается от Base64?

Base32 использует алфавит всего из 32 символов (A-Z и цифры 2-7) без учёта регистра, поэтому результат примерно на 60% больше исходных данных — заметно длиннее, чем у Base64. Зато такую строку удобно диктовать вслух, вписывать вручную или использовать в именах файлов, где регистр не гарантирован.

Где обычно применяют Base32?

Чаще всего в ключах для двухфакторной аутентификации (TOTP/Google Authenticator), а также в DNS-именах и других местах, где важна нечувствительность к регистру и отсутствие визуально похожих символов.

Файлы отправляются на сервер для обработки?

Нет, кодирование и декодирование Base32 полностью происходят в браузере, без передачи данных куда-либо.

Почему в алфавите Base32 нет цифр 0 и 1?

Эти цифры легко перепутать с буквами O и I/l при чтении или ручном вводе, поэтому стандарт RFC 4648 намеренно исключил их из алфавита, оставив только однозначные символы.

Чем Base32 отличается от Base32hex?

Base32hex (тот же RFC 4648) использует алфавит 0-9A-V вместо A-Z2-7 и сохраняет порядок сортировки строк таким же, как у исходных байтов. Оба варианта несовместимы между собой.

Статьи: Кодирование

Base64: зачем нужно кодирование и как оно работает

Как Base64 превращает бинарные данные в текст ASCII и где это реально нужно.

URL Encode/Decode: percent-encoding в ссылках

Как спецсимволы в адресной строке и query-параметрах превращаются в %XX-последовательности.

HTML Entities: как безопасно выводить спецсимволы на странице

Почему символы < > & нужно экранировать и как это предотвращает поломку разметки.

JWT: структура токена и что значит «декодировать» JWT

Header, payload и signature JWT-токена и почему декодирование — не то же самое, что проверка подписи.

Unicode Escape: что означают последовательности \uXXXX

Откуда в JSON и JS-строках берутся последовательности вида \u0041 и что они означают.

ROT13 и шифр Цезаря: простая замена символов

Почему сдвиг на 13 букв делает ROT13 симметричным и зачем его вообще используют сегодня.

Punycode: как домены с кириллицей работают в DNS

Как домен вроде «пример.рф» превращается в ASCII-запись с префиксом xn--.

Азбука Морзе: как текст превращается в точки и тире

Принцип кодирования букв точками и тире и где азбука Морзе применяется сейчас.

Data URI: когда встраивать изображения прямо в код

Как data:-URI встраивает содержимое файла прямо в HTML или CSS и когда это оправдано.

Gzip + Base64: сжатие данных для передачи текстом

Зачем сжатые бинарные данные ещё и кодируют в Base64 перед тем, как поместить в текстовое поле.

XML Entities: экранирование символов в XML-документах

Пять обязательных XML-entity, без которых документ ломается при парсинге.