Личная безопасность

Генератор кодов TOTP/HOTP

Работает локально

Сам инструмент доступен на английском языке; на этой странице приведено его описание на вашем языке.

Используйте Генератор кодов TOTP/HOTP

Для чего это нужно

Вычисляйте одноразовые пароли, основанные на времени (TOTP) или на счетчике (HOTP), для секретного ключа в формате Base32, как это делают приложения-аутентификаторы, и проверяйте, совпадает ли код. Полезно для тестирования собственной настройки двухфакторной аутентификации (2FA).

Приложение работает полностью в браузере: никакие введенные вами данные не передаются на сервер.

Как использовать Генератор кодов TOTP/HOTP

  1. Введите секрет. Вставьте секрет в Base32 своего тестового аккаунта в поле Secret key (Base32) или нажмите Random, чтобы получить новый секрет из 32 символов.
  2. Настройте параметры своего приложения. Выберите тип кода (TOTP — на основе времени или HOTP — на основе счетчика), алгоритм и количество цифр. Большинство приложений-аутентификаторов используют TOTP, HMAC-SHA-1 и 6 цифр.
  3. Показать код. Для TOTP нажмите «Start TOTP»: код отобразится с обратным отсчётом и будет пересчитываться каждую секунду. Для HOTP установите счетчик и нажмите «Show HOTP code»; кнопка «Next» переходит к следующему счетчику.
  4. Проверить код. Введите код из приложения или с сервера в поле «Проверить код» и нажмите «Проверить». В результате будет указано, совпадает ли код, а также для какого шага времени или счетчика.
  5. Остановиться и очистить. По завершении нажмите «Стоп»; последний код останется на экране. Очистите поле «Секрет» самостоятельно.

Пример

Тестовый секрет RFC 6238

Ввод
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Результат (зафиксировано 2026-10-20)
412568

Это опубликованный в RFC 6238 тестовый ключ 12345678901234567890 в формате Base32. На странице отображается его текущий шестизначный код и количество секунд до появления следующего — тот же код, который приложение-аутентификатор показывает для этого секрета; при переходе в режим HOTP со счётчиком 0 отображается 755224 — первое тестовое значение по стандарту RFC 4226.

Что проверяется

СигналЧто это означает
КодHMAC, основанный на временном шаге (TOTP) или счетчике (HOTP), сокращенный до 6 или 8 цифр в соответствии с RFC 4226 и RFC 6238. Он совпадает с приложением только в том случае, если тип, алгоритм и количество цифр одинаковы.
Обновление в наносекундах · временной шаг NОстаток времени в текущем 30-секундном интервале и номер шага, взятый с часов вашего устройства. Если часы идут неточно, отображается предыдущий или следующий код.
Счетчик N · нажмите «Далее»В режиме HOTP код привязан к данному счетчику. Каждый код используется один раз; после этого серверы ожидают следующего счетчика.
Не Base32: ...Секрет содержит символы, не входящие в диапазоны A–Z и 2–7, например 0, 1, 8 или 9. Пробелы, дефисы и знак «=» игнорируются, а строчные буквы допускаются.
секрет состоит всего из N битовДлина секретного ключа меньше, чем 128 бит (26 символов в формате Base32), требуемых стандартом RFC 4226. Коды по-прежнему отображаются, но такой секретный ключ легче угадать.
Допустимо: соответствует ...Проверьте, что в поле указан код текущего временного шага или счетчика HOTP.
Применимо к предыдущему или следующему шагуКод относится к одному 30-секундному интервалу до или после текущего момента (обозначенному желтым цветом). Обычно между двумя устройствами наблюдается небольшая разница во времени.
Нет совпаденийНи проверенные временные шаги, ни счетчики не совпадают. Проверьте секрет, часы, алгоритм и количество разрядов.

Еще примеры

Тестовый ключ RFC 4226, HOTP

Ввод
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Результат

При типе кода HOTP, алгоритме HMAC-SHA-1, 6 цифрах и счетчике 0 код равен 755224; при следующем значении счетчика 1 получается 287082 — это тестовые значения, опубликованные в RFC 4226.

Проверить код на один счетчик впереди

Ввод
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Результат

В режиме HOTP со счётчиком 0 при вводе числа 287082 в поле «Проверить код» выдаётся сообщение: «Допустимо для счётчика 1», что на 1 больше, чем значение в поле счётчика.

Это не секретный ключ в формате Base32

Ввод
0189
Результат

ОШИБКА с сообщением «Не соответствует формату Base32: „0“, „1“, „8“, „9“, поскольку в формате Base32 используются только буквы A–Z и цифры 2–7».

Часто задаваемые вопросы

Что именно он вычисляет?

коды TOTP, генерируемые с интервалом в 30 секунд от текущего времени (RFC 6238), или коды HOTP для заданного вами счетчика (RFC 4226) с использованием HMAC-SHA-1, SHA-256 или SHA-512 и длиной 6 или 8 цифр; большинство приложений-аутентификаторов используют SHA-1 и 6 цифр. При проверке кода пробуется текущий временной интервал и по одному интервалу в обе стороны, либо счетчик HOTP и следующие 9 значений; секрет, содержащий символы, отличные от A–Z и 2–7, отклоняется с выводом соответствующего сообщения.

Защищает ли код TOTP от фишинга?

Не полностью. Фишинг-киты типа adversary-in-the-middle передают код на настоящий сайт, пока вы его вводите, поэтому он перехватывается вместе с паролем; ключи доступа (passkeys) и ключи безопасности FIDO2 устойчивы к этому, потому что привязаны к настоящему домену.

Отправляется или сохраняется ли секрет где-нибудь?

Нет. Коды генерируются в вашем браузере с помощью Web Crypto API, и секретный ключ никогда не загружается и не сохраняется. TOTP зависит от часов вашего устройства, поэтому при неточном времени коды будут отличаться.

Как проверить соответствие кодов требованиям RFC?

Используйте тестовый ключ 12345678901234567890, представленный в формате Base32: GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. В режиме HOTP счетчик 0 возвращает 755224, а счетчик 1 — 287082 (RFC 4226). В RFC 6238 указано значение 94287082 для 8 цифр через 59 секунд после 1 января 1970 года по UTC; в режиме TOTP всегда используется текущее время.

В чём заключается разница между TOTP и HOTP?

HOTP (RFC 4226) учитывает количество использований: каждый код привязан к счетчику, значение которого увеличивается на единицу. TOTP (RFC 6238) — это HOTP, в котором счетчик настроен на текущий 30-секундный временной интервал, поэтому код меняется в такт с ходом часов.

Почему моё приложение показывает другой код?

Сначала проверьте часы, так как разница в 30 секунд приводит к изменению кода. Затем проверьте секретный код на наличие опечаток и уточните, использует ли учетная запись алгоритм SHA-256, SHA-512, 8 цифр или счетчик вместо времени, и установите здесь те же параметры.

Стоит ли вставлять сюда настоящий секрет 2FA?

Лучше не надо. Секрет остаётся в вашем браузере, но любой, кто его увидит или скопирует, сможет генерировать ваши коды, пока вы не сбросите 2FA в этом аккаунте. Чтобы перенести 2FA на новый телефон, используйте функцию переноса или сброса в самом аккаунте.

Пояснение терминов

Исследование PhishDestroy