Перейти к содержанию

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

Преобразование текста в RFC 4648 Base32 и обратно с помощью параметров base32hex и заполнения.

Входные данные
Выходные данные

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

Base32 представляет двоичные данные с помощью 32 однозначных символов — букв от A до Z и цифр от 2 до 7. Это делает его надёжнее там, где Base64 ненадёжен: он работает в системах, не различающих регистр, не использует символы, конфликтующие в URL и именах файлов, и его легко продиктовать или набрать вручную. Чаще всего вы встретите его как секретный ключ приложений двухфакторной аутентификации, в записях DNS, а также в URI вида ni: и хешах для обмена файлами.

Вставьте текст, чтобы закодировать его, или строку Base32, чтобы декодировать обратно — направление переключается селектором режима. Инструмент следует RFC 4648: входной текст сначала преобразуется в байты UTF-8, поэтому символы с диакритикой и эмодзи кодируются и декодируются правильно. Селектор алфавита предлагает четыре варианта: стандартный, base32hex (0–9, A–V), в котором порядок сортировки закодированной строки совпадает с порядком исходных байтов, Crockford Base32 и z-base-32.

Crockford Base32 использует цифры 0–9 и буквы A–Z без I, L, O и U. Он создан для кодов, которые люди читают вслух и вводят заново: в нём нет похожих символов, дефисы игнорируются, а при декодировании I и L читаются как 1, а O — как 0. Z-base-32 переупорядочивает алфавит так, чтобы самые легко читаемые и записываемые символы шли первыми, и выводит строчные буквы. Ни один из них не определяет дополнение символом =.

Дополнение знаками = доводит стандартный и base32hex вывод до длины, кратной восьми символам, как того требует RFC. Некоторые системы — в том числе секретные ключи TOTP — его опускают, поэтому его можно отключить одним флажком. Декодирование снисходительно: принимаются строчные буквы, отсутствующее дополнение, пробелы и переносы строк, а понятное сообщение сообщит, если введённые данные действительно не являются Base32.

Всё работает в вашем браузере, поэтому ничего из вставленного не отправляется на сервер — это важно, когда вы декодируете секретный ключ аутентификатора. Результат можно скопировать, скачать как файл .txt или вернуть во входные данные, чтобы выстроить цепочку преобразований.

FAQ

Для чего используется Base32?
В основном для данных, которые люди читают, вводят или хранят в системах, нечувствительных к регистру: секретные ключи двухфакторной аутентификации (TOTP), записи DNS, хэши файлов. В его 32-значном алфавите отсутствуют похожие символы, и он выдерживает использование заглавных букв.
Чем Base32 отличается от Base64?
Base32 использует 32 символа вместо 64, поэтому его выходные данные примерно на 20% длиннее, чем Base64. В свою очередь, он не чувствителен к регистру и избегает +, / и =, что делает его более безопасным в URL-адресах, именах файлов, а также в устной или рукописной форме.
Какие варианты Base32 поддерживаются?
Четыре алфавита: стандартный (RFC 4648), base32hex (0–9, затем A–V, что сохраняет порядок сортировки байтов), Crockford (без I, L, O и U; при декодировании I и L принимаются как 1, O — как 0, дефисы игнорируются) и z-base-32 (строчный, ориентированный на человека порядок). Для кодирования и декодирования выбирайте один и тот же.
Нужно ли дополнение =?
Строгие потоки по RFC 4648 заканчиваются дополнением = до длины, кратной восьми символам, но во многих реальных случаях — например, в секретных ключах TOTP — его опускают. При кодировании дополнение можно включать и выключать для стандартного алфавита и base32hex; Crockford и z-base-32 его никогда не используют. Декодирование принимает обе формы.
Мой текст где-нибудь загружен?
Нет. Кодирование и декодирование полностью выполняются в вашем браузере, и ничто из того, что вы вставляете, не покидает ваше устройство — безопасно даже для секретов аутентификатора.