Випадкові паролі з літер, цифр і символів через crypto.getRandomValues.
Генератор кодів TOTP/HOTP
Сам інструмент доступний англійською мовою; на цій сторінці наведено пояснення вашою мовою.
Використовуйте Генератор кодів TOTP/HOTP
Як це працює
Обчислюйте одноразові паролі на основі часу (TOTP) або лічильника (HOTP) для секретного ключа у форматі Base32, так само, як це роблять додатки-аутентифікатори, та перевіряйте, чи збігається код. Це корисно для тестування власної конфігурації двофакторної аутентифікації (2FA).
Програма працює повністю у вашому браузері: жодні введені вами дані не завантажуються.
Як користуватися Генератор кодів TOTP/HOTP
- Введіть секрет. Вставте Base32-секрет власного тестового облікового запису в Secret key (Base32) (секретний ключ) або натисніть Random (випадковий), щоб отримати новий 32-символьний секрет.
- Налаштуйте параметри вашого додатка. Виберіть тип коду (TOTP — на основі часу або HOTP — на основі лічильника), алгоритм та кількість цифр. Більшість додатків-аутентифікаторів використовують TOTP, HMAC-SHA-1 та 6 цифр.
- Показати код. Для TOTP натисніть «Start TOTP»: код з’явиться разом із відліком часу і перераховуватиметься щосекунди. Для HOTP встановіть лічильник і натисніть «Show HOTP code»; кнопка «Next» переходить до наступного лічильника.
- Перевірити код. Введіть код із вашого додатка або з сервера в поле «Перевірити код» і натисніть «Перевірити». У результаті буде вказано, чи збігається код, а також для якого кроку часу або лічильника.
- Зупинитися та очистити. Коли закінчите, натисніть «Стоп»; останній код залишиться на екрані. Очистіть поле «Секрет» самостійно.
Приклад
Тестовий секрет RFC 6238
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ412568Це опублікований у 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 на новий телефон, скористайтеся функцією перенесення чи скидання самого облікового запису.