Хеши/крипто
TOTP Generator/Verifier
Одноразовые коды по времени (TOTP, RFC 6238) — генерация текущего кода из секрета и проверка введённого кода с учётом дрейфа времени.
------
TOTP (Time-based One-Time Password, RFC 6238) is a two-factor authentication algorithm that generates a one-time code from a secret and the current time. It's exactly what runs under the hood in Google Authenticator, Authy, and similar apps.
How to use it
- Generate: paste a secret key (usually Base32, the same one encoded in a 2FA setup QR code) and the tool shows the current 6-digit code along with the time left before it changes.
- Verify: enter a secret and a code from an authenticator app to check whether they match.
- Verification tolerates a small amount of clock drift — it accepts a code from a neighboring time step, not just the current one.
Common uses
- Debugging your own 2FA implementation on the backend — checking that the server generates and accepts codes correctly.
- Manually generating a code for an account when you don't have your phone with the authenticator app handy.
- Figuring out why an app's code is being rejected by the server (usually the cause is a clock out of sync).
Things to keep in mind
A TOTP code is only valid for a short window (usually 30 seconds) — that time limit is the main protection, not the secret alone.
Code accuracy depends directly on the device's clock being synced; a noticeable clock drift is the most common cause of rejected 2FA codes.
Статья об этом инструменте: TOTP: как работают одноразовые коды в приложениях-аутентификаторах
Часто задаваемые вопросы
Почему сгенерированный код так быстро истекает?
Коды TOTP привязаны ко времени — по умолчанию они обновляются каждые 30 секунд, вычисляясь из текущего Unix-времени и общего секрета. Это короткое окно ограничивает, как долго утёкший код остаётся полезным.
Что произойдёт, если часы моего устройства рассинхронизированы?
TOTP полагается на то, что обе стороны примерно согласны о текущем времени. Большинство приложений-аутентификаторов и серверов допускают небольшое отклонение (обычно один временной шаг), но большее расхождение приведёт к отклонению верных кодов.
Отправляется ли мой секретный ключ куда-либо при генерации кода здесь?
Нет. Код TOTP вычисляется полностью в вашем браузере — секретный ключ никогда не покидает ваше устройство.
Защищает ли TOTP от фишинга?
Не полностью. Если жертва вводит пароль и текущий TOTP-код на поддельном сайте, злоумышленник может мгновенно использовать оба значения на настоящем сайте, пока код ещё действителен. От такой атаки в реальном времени защищают только аппаратные ключи по стандарту FIDO2/WebAuthn.
Почему сервер принимает и предыдущий временной интервал, а не только текущий?
Это компенсирует небольшую сетевую задержку между генерацией кода на телефоне и моментом, когда сервер его получает и проверяет. Без такого допуска легитимные коды иногда отклонялись бы из-за обычной задержки в несколько секунд.