系统有一张表password_change_requests与列ID, Time and UserID。当新用户按下该按钮时,就会在表中创建一条记录。这Time列包含用户按下“忘记密码”按钮的时间。这ID是一个字符串。创建一个长随机字符串(例如 GUID),然后像密码一样进行哈希处理(这本身就是一个单独的主题)。然后,该哈希值将用作表中的“ID”。
系统向用户发送一封电子邮件,其中包含链接。该链接还包含原始 ID 字符串(散列之前)。该链接将是这样的:http://www.mysite.com/forgotpassword.jsp?ID=01234567890ABCDEF。忘记密码.jsp页面应该能够检索ID参数。抱歉,我不懂Java,所以不能说得更具体。