> totp | authenticator | generator <
Генерируйте одноразовые пароли по времени (TOTP) и по счётчику (HOTP) из секрета Base32. Проверяйте настройки 2FA, ищите расхождения с приложением-аутентификатором и создавайте URI otpauth:// — всё локально в браузере.
Секреты не покидают ваш браузер. Всё же не вставляйте настоящие боевые секреты на чужих компьютерах.
URI OTPAUTH
Нужен QR-код для приложения-аутентификатора? Вставьте URI в генератор QR-кодов
Живые коды с обратным отсчётом
Вставьте секрет Base32 и получайте текущий и следующий коды, обновляемые каждый период, с индикатором времени до истечения.
SHA-1, SHA-256, SHA-512
6, 7 или 8 цифр и любой период. HMAC считается через Web Crypto API и совпадает с тестовыми векторами RFC 4226 и RFC 6238.
Конструктор и импорт URI otpauth
Создавайте URI otpauth:// для приложений-аутентификаторов или импортируйте готовый, чтобы автоматически заполнить все поля. Ничего не отправляется.
>> техническая информация
Как работают одноразовые пароли:
HOTP (RFC 4226) вычисляет HMAC(секрет, счётчик) и усекает результат до 6–8 цифр. TOTP (RFC 6238) — это HOTP, где счётчик равен Unix-времени, делённому на период (обычно 30 секунд): код меняется каждый период, а обе стороны совпадают без обмена данными. Общий секрет обычно передают как текст Base32 или как QR-код с URI otpauth://.
Пример:
RFC 6238 test vector (SHA-1) secret = GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ time = 59 -> counter = 59 / 30 = 1 code (8 digits) = 94287082
Зачем нужен этот TOTP-генератор:
- >Тестировать и отлаживать двухфакторную аутентификацию при разработке входа
- >Выяснять, почему приложение-аутентификатор и сервер выдают разные коды
- >Создавать URI otpauth:// с нужным издателем, алгоритмом, числом цифр и периодом
- >Проверять коды на фиксированных отметках времени через поле Unix-времени
>> часто задаваемые вопросы
В: Как работает TOTP?
О: У приложения и сервера общий секрет. Оба вычисляют HMAC от секрета и текущего шага времени (Unix-время, делённое на период, по умолчанию 30 секунд) и усекают его до 6-значного кода. Если часы совпадают, коды одинаковы.
В: Безопасно ли вводить здесь свой секрет?
О: Вычисления полностью выполняются в вашем браузере через Web Crypto API, на сервер ничего не отправляется. Но секрет TOTP — это ключ к вашему аккаунту: не вставляйте настоящие боевые секреты на общих или недоверенных компьютерах, для отладки используйте тестовые аккаунты.
В: Почему код не совпадает с кодом в приложении-аутентификаторе?
О: Чаще всего причина в неверных часах (TOTP требует времени с точностью до нескольких секунд), другом алгоритме, числе цифр или периоде либо в опечатке в секрете. Убедитесь, что выбраны SHA-1, 6 цифр и 30 секунд — их используют почти все сервисы.
В: В чём разница между TOTP и HOTP?
О: HOTP использует счётчик, который растёт только при использовании кода, поэтому код действует, пока не будет использован. TOTP берёт счётчик из часов, и коды автоматически истекают каждый период. Для 2FA пользователей TOTP распространён намного шире.
В: Что такое URI otpauth://?
О: Это текст внутри QR-кода, который вы сканируете при включении 2FA, например otpauth://totp/Example:user@example.com?secret=...&issuer=Example. Он содержит секрет, издателя, аккаунт и, по желанию, алгоритм, число цифр и период. Вставьте его в поле импорта, чтобы извлечь секрет.
В: Какие настройки поддерживают приложения-аутентификаторы?
О: Google Authenticator и многие другие приложения игнорируют параметры алгоритма, цифр и периода и всегда используют SHA-1, 6 цифр и 30 секунд. Оставляйте эти значения по умолчанию, если не уверены, что приложение и сервер поддерживают другие.