Загрузить файл
  1. base64hub
  2. Другие BaseN
  3. Декодер Base32

Декодер Base32: Base32 в текст или hex

Вставьте строку Base32 и прочитайте декодированный текст. Строчные буквы, пробелы и отсутствие дополнения = не мешают, так что секрет 2FA, скопированный с экрана настройки, декодируется как есть.

Бесплатно без регистрации и ограничений Локально ничего не загружается Терпимый любой регистр, пробелы, без дополнения Обновлено 27 окт. 2026 г.
Ввод 0Байты 0 BРезультат 0

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

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

  1. Вставьте строку в поле Ввод · Base32 (RFC 4648). Верхний и нижний регистр, пробелы между группами и переносы строк допускаются, дополнение = необязательно.
  2. Прочитайте декодированный текст в поле Результат · Текст. По умолчанию байты читаются как UTF-8; если текст пришёл из другой системы, поменяйте Кодировка под результатом.
  3. Если в результате мешанина символов, данные двоичные. Выберите в меню В вариант Hex или Base64, чтобы увидеть байты, или нажмите Сохранить байты, чтобы скачать их файлом.
  4. Если ввод в другом алфавите, переключите Из на Base32hex, Crockford Base32 или z-base-32.
  5. Чтобы кодировать, нажмите Текст → Base32 (RFC 4648) в переключателе направления или откройте кодировщик Base32.

Что декодер принимает и что отвергает

Оформление декодер прощает, а содержимое проверяет строго:

ВводРезультат
JBSWY3DPHello
jbswy3dpHello; регистр не важен
JBSW Y3DP EHPK 3PXP10 байт, в hex 48656c6c6f21deadbeef
MZXW6YQfoob; отсутствие дополнения не мешает
JBSWY3D0Ошибка: неожиданный символ "0" в позиции 8

Ошибка указывает на первый символ, которого нет в алфавите. 0, 1, 8 или 9 почти всегда означают, что у строки другой алфавит Base32, а + или / выдают Base64; для него есть декодер Base64.

Декодирование секрета 2FA или TOTP

Ключ, который приложение-аутентификатор показывает при настройке (часто группами, как jbsw y3dp ehpk 3pxp), записан в Base32 по RFC 4648. После декодирования получается «сырой» ключ HMAC, то есть случайные байты, поэтому смотрите на него как на Hex, а не Текст. По длине можно понять размер ключа: 16 символов – это 10 байт, 32 символа – 20 байт (160 бит, размер, рекомендованный RFC 4226), 52 символа – 32 байта.

Чтобы убедиться, что секрет правильный, сгенерируйте по нему код. Эта функция на Python декодирует секрет так же терпимо, а дальше следует RFC 6238:

import base64, hashlib, hmac, struct

def totp(secret, t, digits=6, step=30):
    s = secret.replace(" ", "").upper()
    key = base64.b32decode(s + "=" * (-len(s) % 8))
    mac = hmac.new(key, struct.pack(">Q", t // step), hashlib.sha1).digest()
    off = mac[-1] & 0x0F
    code = struct.unpack(">I", mac[off:off + 4])[0] & 0x7FFFFFFF
    return str(code % 10**digits).zfill(digits)

totp("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ", 59, 8)   # '94287082'

Секрет и ожидаемое 94287082 взяты из тестового вектора SHA-1 в RFC 6238. Для текущего кода передайте int(time.time()) в качестве t. Другие приёмы декодирования описаны на странице про Python.

IPFS CIDv1 и другой Base32 с префиксом

Некоторые форматы ставят перед Base32 метку. Строки IPFS CIDv1 начинаются с b: так multibase обозначает Base32 по RFC 4648 в нижнем регистре без дополнения. В bafybei… буква b служит префиксом, а afybei… содержит данные. Уберите b, декодируйте и выберите в меню В вариант Hex. Первые байты содержат версию CID (01), тип содержимого (70 для dag-pb) и заголовок multihash (1220 для 32-байтного SHA-256).

Onion-адреса Tor v3 устроены так же, только без префикса: 56 символов перед .onion кодируют в Base32 35 байт: 32-байтный открытый ключ, 2-байтную контрольную сумму и байт версии (03).

Типичные проблемы

  • Python выбрасывает binascii.Error: Non-base32 digit found. Ввод в нижнем регистре. Передайте casefold=True в b32decode или сначала вызовите .upper().
  • Python выбрасывает binascii.Error: Incorrect padding. Знаки = были удалены. Дополните длину до кратной 8, как в функции выше.
  • base32 -d пишет invalid input. GNU coreutils не принимает ни нижний регистр, ни пробелы. Сначала очистите строку или декодируйте её здесь.
  • Текст декодируется, но получается не то. Строку base32hex или Crockford можно без ошибки декодировать чужим алфавитом. Если источник говорит «Base32», а в строке нет 0, 1, 8 или 9, скорее всего, это всё-таки RFC 4648; иначе попробуйте два других алфавита.

Вопросы и ответы

Как декодировать секрет TOTP?

Вставьте секрет (значение secret= из ссылки otpauth:// или текстовый ключ, который приложение показывает вместо QR-кода) и выберите в меню В вариант Hex. Получится «сырой» ключ HMAC. Это случайные байты, поэтому вывод Текст будет выглядеть как мусор, и это нормально.

Почему Python пишет Incorrect padding при декодировании Base32?

base64.b32decode требует, чтобы длина была кратна 8. Сначала допишите недостающие =: s + "=" * (-len(s) % 8). Этому декодеру дополнение не нужно.

Можно ли здесь декодировать ULID?

Напрямую нет. ULID использует алфавит Crockford, но кодирует одно 128-битное число в 26 символов, начиная с 2 запасных бит. Опция Crockford здесь упаковывает байты с первого символа, поэтому для ULID вернёт сдвинутые байты.

Какие символы недопустимы в Base32?

В Base32 по RFC 4648 недопустимо всё, кроме A–Z, 2–7 и завершающих =. Цифры 0, 1, 8 и 9 обычно выдают base32hex или Crockford; переключите меню Из на один из них.