2FASync
Проверяйте параметры до сохранения кода
Два внешне одинаковых QR могут описывать разные методы расчёта. 2FASync принимает поддерживаемые TOTP-профили и предупреждает о форматах, которые не следует преобразовывать автоматически.
Простой ключ Base32
При вводе корректного ключа Base32 без URI используется базовый профиль: SHA-1, шесть цифр и 30 секунд. Для других совместимых параметров предусмотрен адрес otpauth://totp/ с описанием настройки.
Длина, алгоритм и интервал
2FASync поддерживает TOTP из шести или восьми цифр с SHA-1, SHA-256 или SHA-512. Корректный период в URI может быть от 1 до 86400 секунд; при отсутствии такого параметра применяется 30 секунд.
HOTP — отдельный механизм со счётчиком
HOTP не зависит от интервалов времени и требует согласования счётчика. 2FASync распознаёт неподдерживаемые типы при импорте, но не добавляет HOTP в хранилище и не превращает его молча в TOTP.
Сверяйте требования исходного сервиса и парсера
Если вводится только корректный секрет Base32, 2FASync использует профиль по умолчанию: SHA-1, шесть цифр, 30 секунд. Адрес otpauth://totp/ может описывать другой поддерживаемый алгоритм SHA-256 или SHA-512, восемь цифр и период от 1 до 86400 секунд. Эти значения допускает обработчик приложения, но это не означает, что конкретная сторонняя площадка принимает каждую комбинацию.
Экспорт Google Authenticator имеет дополнительное ограничение поддерживаемых миграционных профилей. Записи HOTP используют счётчик и не должны незаметно импортироваться в TOTP-хранилище; неизвестный алгоритм или число цифр также требуют явного предупреждения. При несовместимости лучше вернуться к настройкам двухфакторного входа самого сервиса, чем исправлять адрес URI наугад.
Почему HOTP не импортируется как TOTP?
HOTP основан на счётчике событий, а TOTP — на времени. Их автоматическая подмена может привести к неверным кодам; 2FASync не делает такого преобразования.
