В этой статье
Что такое 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. Он сохраняет лексикографический порядок сортировки исходных двоичных данных, что полезно для индексации баз данных.