Особиста безпека

Генератор кодів 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 значення «Next» дає 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