Как сгенерировать одноразовый пароль (OTP) на основе времени с помощью Django - PullRequest
0 голосов
/ 30 апреля 2018

Я генерирую случайную строку как OTP, используя следующий код -

from django.utils.crypto import get_random_string

otp = get_random_string(6, allowed_chars='0123456789')

Проблема с этим связана с проблемами доставки SMS, которые люди запрашивают много OTP, а затем, когда они приходят вместе, они не знают, какой из них действителен в настоящее время.

Я хочу создать OTP, который не будет меняться в течение 30 минут и уникален для каждого телефонного номера, который будет выглядеть примерно так: + 919999999999 .

1 Ответ

0 голосов
/ 30 апреля 2018

Если вы хотите быть детерминированным, просто целочисленно разделите текущую временную метку на 30 минут, объедините ее с номером телефона и секретной солью, а затем хешируйте их все.

В качестве альтернативы вы можете сгенерировать случайный файл и сохранить его в кеше Django со сроком действия 30 минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...