2013-03-03 34 views
1

根据这个其他职位,我需要:如何电子邮件用户新的链接,创建一个密码

PHP password recovery 你不“恢复”密码。你做什么是2件事之一。

  1. 通过电子邮件向用户发送链接以创建新密码,覆盖当前密码。
  2. 给用户发送一个随机生成的密码,然后要求他们改变它。

我已经咬掉了一个巨大的项目,我拼命地要求工作的例子,或至少你如何做到这一点的最佳建议;例如:#1电子邮件用户链接创建一个新密码,覆盖当前密码。我被告知db有密码salting,并使用Blowfish。我真的不知道这到底意味着什么,我正在通过代码来试图找出如何添加“重置密码?”。链接到他们当前的登录页面。

然后,如果你是这么倾向,你可以协助如何给用户发送一个随机生成的pw,然后让他们改变它[上面的#2?

这些任务是一样的,我不知道到目前为止提供什么代码;我希望有人这样做可以告诉我什么可行,我会尽力实施它。我感谢您的帮助!

+0

维基百科有一个页面解释密码salting:http://en.wikipedia.org/wiki/Salt_(cryptography) – 2013-03-03 21:47:51

+0

不确定任何人都可以帮助你,如果你不知道什么是盐分或如何识别那种使用散列法或盐如何应用。你必须阅读代码,看看它是如何应用的,或者这里给出的任何例子对你来说都没用。 – scartag 2013-03-03 21:48:30

+2

你说你已经完成了一个巨大的项目,但根据你的要求,这听起来更像是你注册了一个你不合格的项目。您尝试完成的工作是,如果犯了一个小错误,可能会使网站面临巨大的安全问题。为什么不把你的名声帮忙,并且让你同意为你工作的人去做,并优雅地走开,直到你有资格。 – mah 2013-03-03 21:56:28

回答

4

的常用方法来生成密码重置是这样的:

  1. 检查电子邮件地址属于一个注册用户。
  2. 生成随机不可预知的代码。
  3. 将此代码散列在数据库中,以及用户标识和过期日期。
  4. 发送带有此代码的链接到指定的电子邮件地址,因此只有该用户本身才能看到此链接。
  5. 当用户单击链接时,提取代码并检查其散列是否在数据库中。
  6. 如果它在数据库中并且没有过期,您就知道用户标识,并且您可以允许用户输入新密码(不要向用户发送自己生成的密码)。
  7. 将代码标记为已使用或将其从数据库中删除。

我希望这可以给你一个必要的步骤的想法。如果你想了解更多关于BCrypt和salting的信息,你可以看看这个tutorial关于哈希密码。

+0

我正在与公司总裁密切合作,不会产生未经他绝对审查的代码。非常感谢警告和想法。 – dcparham 2013-03-05 03:31:50

相关问题