密码重置在Java中

时间:2011-10-20 18:40:09

标签: java passwords recovery

有没有人可以提供有关如何在连接到db的Java Web应用程序中重置密码的资源,其中密码存储为hashed(密码+ salt + secretphrase)?我也使用Spring,所以如果它在这个领域有什么东西请说明。

我知道一般技巧:

  1. “密码重置”按钮
  2. 要求用户通过输入电子邮件确认其身份。
  3. 生成令牌并发送到邮件地址。 (怎么样?什么是哈希?哪些属性?如何发送自动邮件消息? - 之前没做过)
  4. 用户转到令牌链接提供的网页,等待新密码字段。

    • 令牌具有时间有效性,从其他类似问题来看,最好是几个小时。
    • 不要使用安全问题,因为它们无限制。
  5. 我要问的是有关如何生成令牌和向用户发送令牌邮件的伪代码或示例实现。

1 个答案:

答案 0 :(得分:5)

当你说java时,你的意思是java中的web应用程序吗? 您的功能需要许多不同的组件。

  • 对于密码恢复,在jsp中添加一个按钮,调用servlet。该servlet应该重定向到一个新的jsp,它有一个输入电子邮件的字段。
  • 输入电子邮件并提交后。请求应该转到另一个进行数据库调用并验证电子邮件的servlet。如果电子邮件有效,则可以生成令牌。令牌可以由Math.random()函数生成。生成一些数字并使用这些数字创建一个字符串。例如用于创建全字母字符串,将数字除以26,并根据余数选择字符。
  • 最后是另一个允许选择新密码的jsp页面。

您可以使用JavaMail api发送电子邮件。 Spring框架有许多组件,您可以将它用于前端,数据库调用和发送邮件。您需要阅读文档以了解它们。