Сброс пароля в Java [закрыто]


Может ли кто-нибудь предоставить ресурсы о том, как сбросить пароль в веб-приложении Java, подключенном к БД, где пароль хранится в виде хэша(пароль+соль+секретная фраза)? Я также использую Spring, поэтому, если у него есть что-то в этой области, пожалуйста, определите.

Я знаю общую технику:

  1. кнопка"Сброс пароля"
  2. попросите пользователя подтвердить свою личность-через ввод электронной почты.
  3. токен генерируется и отправляется на почтовый адрес. (как ? Это гашиш чего? какие свойства? как отправить автоматическое почтовое сообщение?- никогда не делал этого раньше)
  4. Пользователь переходит на веб-страницу с предоставленной ссылкой токена, где ожидает новое поле пароля.

    • токен имеет срок действия, судя по другим подобным вопросам в идеале несколько часов.
    • Не используйте секретные вопросы, поскольку они бесконечно непрактичны.

То, что я спрашиваю,-Это какой-то псевдокод или пример реализации о том, как генерировать токены и отправлять письма с токенами пользователям.

1 2

1 ответ:

Когда вы говорите java, вы имеете в виду веб-приложение на java ? Ваша функциональность нуждается в большом количестве различных компонентов.

  • для восстановления пароля добавьте кнопку в jsp, которая вызывает сервлет. Этот сервлет должен перенаправить на новый jsp, который имеет поле для ввода электронной почты.
  • После ввода электронной почты и отправки. Запрос должен перейти к другому сервлету, который делает вызов db и проверяет электронную почту. Если письмо действительно, то вы можете сгенерировать токен. Токен может быть генерируется математикой.случайная функция. Сгенерируйте некоторую связку чисел и, используя эти числа, создайте строку. например, для создания строки всего алфавита разделите число на 26 и выберите символ на основе остатка.
  • Наконец, еще одна страница jsp, которая позволяет выбрать новый пароль.

Вы можете использовать JavaMail api для отправки электронных писем. Spring framework имеет много компонентов, вы можете использовать его для frontend, DB вызовов и для отправки почты. Вам нужно пройти через документация, чтобы узнать о них.