Skip to main content
CheckTown
Инструменты разработчика

Base32 Encoding: A Complete Guide

Опубликовано 5 мин чтения
В этой статье

Что такое Base32?

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

Base32 создаёт более длинный вывод, чем Base64 (примерно 60% накладных расходов против 33%), но компромиссом является улучшенная читаемость и совместимость с системами, нечувствительными к регистру или запрещающими специальные символы вроде + и /.

Как работает кодирование Base32

Base32 преобразует каждую группу из 5 байт (40 бит) в 8 символов Base32 (по 5 бит каждый), дополняя символами = когда длина входных данных не кратна 5.

  • 5-битная группировка — входные байты разбиваются на 5-битные блоки, каждый из которых соответствует одному из 32 символов алфавита A-Z, 2-7
  • Дополнение — символы = добавляются, чтобы длина вывода всегда была кратна 8
  • Варианты — Base32Hex использует 0-9, A-V вместо A-Z, 2-7 для сохранения порядка сортировки

Попробуйте бесплатно — без регистрации

Кодировать или декодировать Base32 →

Когда использовать Base32

Base32 предпочтительнее Base64, когда важны чувствительность к регистру, читаемость или ограничения символов.

  • Секреты TOTP — приложения-аутентификаторы вроде Google Authenticator используют секреты в Base32, так как пользователям может потребоваться вводить их вручную
  • Кодирование Crockford — вариант Base32, который удаляет неоднозначные символы (I, L, O, U) для более чистых идентификаторов
  • DNS и файловые системы — Base32 работает в средах, нечувствительных к регистру, где смешанный алфавит Base64 вызвал бы коллизии

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

В чём разница между Base32 и Base64?

Base32 использует 32 символа (A-Z, 2-7) с ~60% большим выводом; Base64 использует 64 символа с ~33% накладных расходов. Base32 нечувствителен к регистру и избегает специальных символов.

Почему приложения-аутентификаторы используют Base32?

Потому что пользователям иногда нужно вводить секретный ключ вручную. Алфавит из одних заглавных букв предотвращает путаницу между похожими символами.

Что такое Base32Hex?

Base32Hex использует символы 0-9 и A-V вместо A-Z, 2-7. Он сохраняет лексикографический порядок сортировки исходных двоичных данных, что полезно для индексации баз данных.

Похожие инструменты