Я пытаюсь сделать процесс проверки для сброса пароля, я использовал два значения: время эпохи, и я хочу использовать старый пароль пользователя (pbkdf2) в качестве ключа,
Поскольку я не хочу получать символы, отличные от ASCII, я использовал библиотеку SimpleEncode, поскольку она быстро, так как это только BASE64 с используемым ключом, но проблема в том, что пароль слишком длинный (196 символов), поэтому я получаю длинный ключ!
Что я сделал, так это разделил результат code = simpleencode.encode(key,asci)[::30]
, но он не будет уникальным!
Чтобы понять, как это работает, я попробовал процесс сброса Facebook, но дано число! Итак, как работает этот процесс, разве они не используют ключ, чтобы кому-то было трудно подделать ссылку для сброса чьего-то пароля?
Обновление: как будет работать алгоритм:
1- получить время с помощью epoche time.time()
2- сгенерируйте Base64 времени эпохи (для использования для URL-адреса) и значения времени эпохи + ключ, этот ключ PBKDF2 (пароль).
3- сгенерируйте URL-адрес www.example.com/reset/user/Base64(time.time()) и отправьте этот URL + simpleencode.encode(key,asci)[::30]
4- когда пользователь нажимает на URL-адрес, он вводит сгенерированный код, этот сгенерированный код, если он совпадает с URL-адресом, то пусть он изменит пароль, иначе это забытый URL-адрес!