-3

我想在我的用户登录模块中添加“忘记密码”功能,因为我已经创建了密码恢复操作,当用户输入电子邮件系统时,将检查邮件是否存在,如果存在,它将向用户发送邮件. 我想知道的是如何在该邮件中包含用户当前密码和用户名。

我怎样才能做到这一点 ?

4

1 回答 1

2

你永远不会这样做,永远永远,你发送一个密码恢复哈希,并添加一个带有时间的令牌到你的数据库,然后通过电子邮件将哈希发送给丢失密码的用户。不要明文存储密码,这会违反客户端密码安全性,并且如果您的数据库遭到破坏,它将向您的整个用户群释放用户名和密码组合。

将密码存储为:

   DB.userTable.setTupple(username,sha1(username+"optionaldelimiter"+password));

检索密码为:

resetPasswd(username : string, hash : string, newPasswd: string)
{
tup = DB.recoveryTable.fetchTupple(username,hash);
  if( tup != null && tup.expiresAt <= Date.now())
  {
  DB.setPasswd(username,newPasswd);
  }
}
于 2012-08-09T04:58:10.933 回答