Выбор ответа Junior Стандартная библиотека спрашивают часто обновлено

secrets против random

Вопрос

Чем генерировать токен для сброса пароля?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: secrets.tokenurlsafe(32). random это предсказуемый генератор Mersenne Twister: по достаточному числу выходов можно восстановить состояние и угадать следующий токен. secrets берёт криптостойкую случайность из ОС. uuid1 содержит время и MAC-адрес, его можно частично…

Варианты ответа

  1. random.randint(0, 10**12)
  2. uuid.uuid1().hex
  3. secrets.token_urlsafe(32)правильный ответ
  4. hash(user.email + salt)

Разбор

random это предсказуемый генератор Mersenne Twister: по достаточному числу выходов можно восстановить состояние и угадать следующий токен. secrets берёт криптостойкую случайность из ОС. uuid1 содержит время и MAC-адрес, его можно частично угадать. hash() строки детерминирован в рамках процесса и вообще не случайный.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.