Декодировать секрет base32

Ключи настройки TOTP и DNS-безопасные токены приходят в алфавите A–Z2–7. Декодирование base32 показывает байты; кодирование подтверждает обратный путь.

Инструменты, используемые в этом руководстве

Задача

Base32 жертвует плотностью ради надёжности: нет двусмысленных 0/O или 1/l, безопасно в DNS и на бумаге. Когда 2FA-ключ или лицензионный токен приходит как JBSWY3DPK5XXE3DE, декодируйте его, чтобы увидеть лежащий в основе UTF-8 или подтвердить обратимость.

Текст ↔ base32

Вставьте любую из сторон. Кодирование превращает текст UTF-8 в стандартный алфавит с необязательным дополнением «=»; декодирование принимает строчные буквы и игнорирует пробелы и дополнение.

Пример

Hello кодируется в JBSWY3DP (дополнение необязательно). Декодирование jbsw y3dp — строчными буквами с пробелом — по-прежнему возвращает Hello. Обратите внимание: JBSWY3DZ тоже корректная строка и декодируется в Helly — base32 проверяет алфавит, а не смысл.

Охват

Base32 по RFC 4648 для текста UTF-8, до 200 000 символов в обе стороны. Некорректный UTF-8 в декодированных байтах сообщается, а не превращается в кракозябры. Варианты Base32hex и Crockford — другие алфавиты и не распознаются.