Генератор TOTP — Живий код автентифікатора 2FA
Вставте секрет TOTP у форматі Base32 і спостерігайте, як справжній живий 6-значний код автентифікатора змінюється що 30 секунд — повністю офлайн у вашому браузері.
🔒 Обробляється повністю у вашому браузері — те, що ви тут вводите, ніколи не вивантажується.
Результат
Цей інструмент генерує справжні, стандартизовані одноразові паролі на основі часу (TOTP) із секрету в Base32 — ті самі шестизначні коди, які показують додатки на кшталт Google Authenticator чи Authy. Вставте секрет, отриманий під час налаштування двофакторної автентифікації — зазвичай це рядок, прихований за QR-кодом — і спостерігайте, як код відраховується та оновлюється що 30 секунд, точнісінько як у додатку на телефоні. Інструмент призначений для тестування та перевірки секретів 2FA, якими ви володієте або керуєте: для налагодження потоку входу, який ви розробляєте, підтвердження резервного коду перед тим, як викинути QR для налаштування, або для перевірки правильності введення секрету.
За лаштунками це справжня реалізація RFC 6238 (TOTP), побудована на RFC 4226 (HOTP), а не косметичний зворотний відлік. Секрет у Base32 декодується згідно з RFC 4648 у необроблені байти ключа, поточний час Unix ділиться на часовий крок для отримання змінного лічильника, і цей лічильник кодується як 8-байтовий буфер у форматі big-endian. Вбудований API Web Crypto браузера (crypto.subtle) обчислює HMAC для цього буфера з вибраним вами хешем — SHA-1 залишається майже універсальним стандартом для сумісності з наявними додатками-автентифікаторами, тоді як SHA-256 і SHA-512 пропонуються для систем, що підтримують надійніші варіанти. Динамічне скорочення RFC 4226 потім витягує чотири байти з результату HMAC за зміщенням, узятим з його останнього байта, маскує старший біт і зводить результат за модулем 10^6 або 10^8, щоб отримати 6- або 8-значний код — ту саму арифметику, яку виконує додаток-автентифікатор на вашому телефоні.
Кожен етап процесу відбувається локально: немає серверної частини, немає аналітичних сигналів, які передають ваш секрет, і немає жодних зовнішніх викликів API. Текст Base32, який ви вставляєте в поле, обробляється безпосередньо JavaScript у вашій вкладці й ніколи її не покидає. Це робить інструмент безпечним способом швидко перевірити секрет 2FA на машині, якій ви довіряєте, хоча, як і з будь-яким інструментом, що працює з автентифікаційними даними, вам усе ж слід уникати вставлення секретів на спільних або публічних комп’ютерах і використовувати його лише для кодів, прив’язаних до облікових записів, якими ви володієте або які вам явно дозволено тестувати.
Елементи керування алгоритмом, кількістю цифр і часовим кроком існують тому, що реальні розгортання TOTP не є абсолютно однаковими: більшість споживчих сервісів використовують SHA-1 із 6 цифрами та 30-секундним кроком, але деякі корпоративні та інструменти для розробників видають секрети SHA-256 або SHA-512, 8-значні коди чи нестандартні часові кроки, як-от 15 або 60 секунд. Налаштування цих параметрів відповідно до того, що вказано в URI для налаштування або на сторінці конфігурації, дозволяє точно відтворити код, який показав би ваш додаток-автентифікатор, що є безцінним, коли ви реалізуєте власний сервер перевірки TOTP і потребуєте надійного офлайн-еталона для порівняння.