У меня есть требование
- Сторонний поставщик (TPP) хочет получить доступ к конечной точке отдыха с помощью OTP.
Таким образом, TPP запрашивает service1, которая, в свою очередь,вызывает сервис2, который генерирует OTP, сохраняет специфичные для пользователя данные, относящиеся к этому запросу, в БД против этого OTP и возвращает OTP в TPP.Эти OTP действительны в течение некоторого n раз, например, для.6 минутПока все хорошо, теперь мои вопросы ниже
Я могу генерировать только 6-значные OTP.Я использую Java.Crypto.mac.Я получаю много дубликатов OTP.Какой алгоритм лучше, чтобы вероятность получения дубликатов была меньше?Я взял подсказку от https://github.com/jchambers/java-otp/blob/master/src/main/java/com/eatthepath/otp/HmacOneTimePasswordGenerator.java
, используя ту же логику.Я тестировал с использованием jmeter для одного потока, 5000 раз я получаю почти 500 дубликатов OTP
Я прочитал, что TOTP работает в подходе клиент-сервер.Я не понимаю, в моем сценарии нет клиента как такового.Есть ли способ, которым я не храню OTP в БД?
Также в какой-то момент все OTP будут исчерпаны, если я сохраню их в БД.
Я прочитал почти все статьи о XOR128, TOTP, HOTP, но кое-что мне не хватает, чтобы понять.Пожалуйста, помогите мне решить эту проблему.