Как сгенерировать код TOTP из секрета Base32
Узнайте, как сгенерировать код TOTP или HOTP из секрета Base32, настроить период или счётчик и выбрать правильную длину одноразового пароля.
Чтобы получить одноразовый пароль, откройте онлайн-генератор, укажите секретный ключ в формате Base32, выберите режим TOTP или HOTP и задайте количество цифр. Для генерации TOTP используется текущее системное время и период обновления, а для HOTP требуется указать целочисленный счётчик.
Что нужно для расчёта кода
Для вычисления одноразового пароля через Генератор одноразовых кодов OTP требуется текстовый ключ в кодировке Base32. Алгоритм выполняет криптографическое преобразование HMAC-SHA1 в соответствии со стандартами RFC 6238 для TOTP и RFC 4226 для HOTP.
Перед запуском генерации подготовьте следующие параметры:
- Строка секрета Base32 без посторонних знаков.
- Режим работы: привязанный ко времени TOTP или управляемый счётчиком HOTP.
- Длина пароля: 6 или 8 цифр.
- Период шага в секундах для TOTP (по умолчанию 30 секунд) либо номер счётчика для HOTP.
Если секретный ключ был получен при сканировании штрихкода двухфакторной аутентификации, его можно также упаковать обратно с помощью инструмента Генератор QR-кодов.
Пошаговая инструкция по генерации
- Вставьте секретный ключ в поле ввода секрета Base32. Лишние пробелы по краям строки и регистр букв инструмент нормализует автоматически.
- Выберите режим вычисления. Для стандартной двухфакторной аутентификации приложений укажите TOTP. Если требуется код для фиксированного шага, переключитесь на HOTP.
- Укажите количество цифр в коде: 6 цифр или 8 цифр в зависимости от требований целевого сервиса.
- Настройте временной шаг или счётчик. Для TOTP укажите период от 1 до 86 400 секунд. Как настроить HOTP со счётчиком: переключите режим на HOTP и введите целое неотрицательное число от 0 до 18 446 744 073 709 551 615.
- Запустите генерацию. В поле результата появится одноразовый числовой код, а для TOTP отобразится оставшееся число секунд до окончания текущего временного окна.
Чем отличается TOTP от HOTP и какой режим выбрать
Разбираясь, чем отличается TOTP от HOTP и какой режим выбрать, важно помнить ключевой фактор вычисления. TOTP опирается на текущее время Unix, разделенное на заданный интервал. Код действует ограниченное время (обычно 30 секунд) и автоматически сменяется при наступлении следующего окна. Этот вариант применяется в Google Authenticator, Яндекс Ключе и корпоративных системах входа.
Режим HOTP не зависит от системного времени. Пароль вычисляется исключительно по порядковому номеру события или нажатия кнопки аппаратного токена. Значение счётчика увеличивается при каждом запросе, поэтому один и тот же номер всегда даёт одинаковый код.
Чем отличаются шестизначные и восьмизначные коды OTP
Рассматривая, чем отличаются шестизначные и восьмизначные коды OTP, следует обратить внимание на формат приёмной стороны. Шестизначный код является отраслевым стандартом по умолчанию для большинства мобильных приложений аутентификации. Восьмизначные коды обеспечивают повышенную энтропию и чаще задействуются в банковских протоколах, VPN-шлюзах и специализированных аппаратных токенах.
Практический пример
Предположим, у вас есть тестовый ключ JBSWY3DPEHPK3PXP, и вам нужно проверить формирование кода для текущей минуты.
- Введите строку
JBSWY3DPEHPK3PXPв поле секрета. - Выберите режим TOTP, установите длину 6 цифр и оставьте стандартный период 30 секунд.
- Запустите расчёт. Генератор вернёт шестизначный пароль и таймер обратного отсчёта до следующего интервала времени.
Ограничения и частые ошибки
Понимание того, почему не генерируется код TOTP или HOTP, помогает быстро устранить неполадки:
- Инструмент выполняет вычисления только с алгоритмом HMAC-SHA1. Алгоритмы HMAC-SHA256 или HMAC-SHA512 не поддерживаются.
- Некорректный секрет Base32: наличие символов, не входящих в алфавит Base32 (например, цифр 8 или 9), приводит к ошибке декодирования.
- Недопустимый период: для TOTP допускаются только целые значения от 1 до 86 400 секунд.
- Выход счётчика за допустимые границы: счётчик HOTP должен быть целым неотрицательным числом.
Частые вопросы
Можно ли вставить секрет Base32 без символов дополнения?
Да, инструмент принимает секреты без завершающих знаков равенства, если сама строка содержит допустимые символы алфавита Base32.
Что указывать: период или счётчик?
Для режима TOTP указывается период в секундах, а для режима HOTP указывается целочисленный счётчик шагов.
Показывает ли результат исходный секрет?
Результат содержит только сформированный одноразовый числовой пароль и время до конца интервала для TOTP, не раскрывая секрет в выводе.