Проверка кода TOTP
Проверьте, действителен ли код TOTP для секрета Base32 в текущий или заданный момент, с настраиваемым окном ±шагов, как у реальных серверов 2FA.
Ключ, который сервис показывает при настройке 2FA. Пробелы и строчные буквы допустимы.
± шагов вокруг текущего; 1 = ±30 с при стандартном периоде.
Оставьте пустым, чтобы использовать текущее время.
Как и серверы, сначала проверяет текущий шаг, затем предыдущие и следующие в пределах допустимого отклонения. Настоящий сервер также должен отклонять уже использованный код.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Проверка кода TOTP?
Введите секрет и код, чтобы проверить, действителен ли код сейчас или в указанный вами момент, с тем же окном расхождения часов, что использует серверы аутентификации. Результат сообщает, какой временной шаг совпал, что помогает диагностировать проблемы с часами.
Как пользоваться Проверка кода TOTP
- Вставьте Секретный ключ (Base32).
- Введите Проверяемый код; при желании Время Unix (необязательно).
- Нажмите Проверить и прочитайте результат.
Пример
Secret GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ, 8 digits, Unix time 89, code 94287082, drift 1
Valid: the code matches time step -1 (clock drift).
Когда использовать Проверка кода TOTP
Используйте для отладки неудачных входов по 2FA, проверки окна расхождения вашей реализации или проверки кодов аппаратных токенов. Настоящий сервер дополнительно должен отклонять коды, которые уже использовались.
Как работает Проверка кода TOTP
Сначала проверяется текущий шаг T = floor(время / период), затем T−1, T+1, T−2 … до допустимого отклонения. Код каждого шага вычисляется через HMAC по RFC 4226/6238 и сравнивается с введённым. При совпадении сообщается смещение, например −1, если код из предыдущего 30-секундного окна.
Распространенные Случаи Использования
- Диагностика неудачных входов по 2FA из-за расхождения часов
- Тестирование окна приёма в реализации TOTP
- Проверка кодов аппаратного токена
- Обучение тому, как работает проверка TOTP
Часто Задаваемые Вопросы
Какое окно расхождения должен допускать сервер?
RFC 6238 рекомендует не более одного шага назад из-за сетевой задержки; многие серверы принимают ±1 шаг (±30 секунд).
Почему действительный код отклоняется после входа?
Серверы должны запоминать использованные коды и отклонять их повторно, чтобы предотвратить атаки повторного воспроизведения.
Можно ли здесь проверять коды HOTP?
Нет, используйте генератор HOTP и сравните коды для ожидаемых значений счётчика.