How to Email user new link to create a password
根据这篇文章,我需要:
PHP密码恢复您不能"恢复"密码。你做的是两件事之一。
向用户发送一个链接以创建新密码,覆盖当前密码。
向用户发送随机生成的密码,然后要求他们更改。
我已经咬掉了一个巨大的项目,我绝望地请求工作实例,或者至少是你关于如何做到这一点的最佳建议;例如:1电子邮件用户链接创建一个新密码,覆盖当前密码。我被告知数据库有密码盐渍,并使用河豚。我真的不知道这意味着什么,我正在检查代码,试图找出如何添加"重置密码"?链接到他们当前的登录页面。
那么,如果你这么想的话,你能帮我向用户发送一封随机生成的密码,然后作为他们更改上面的密码吗?
到目前为止,任务仍然是这样的,我不知道要提供什么代码;我希望已经完成这项工作的人能够向我展示什么是有效的,我将尝试实现它。谢谢你的帮助!
- 维基百科有一个页面解释密码加盐:en.wikipedia.org/wiki/salt_u(密码学)
- 如果你不知道盐是什么,也不知道如何识别所用的散列方法或盐是如何应用的,那么谁也帮不了你。您必须阅读代码并了解它是如何应用的,或者这里给出的任何示例对您来说都是无用的。
- 你说你已经放弃了一个庞大的项目,但根据你的要求,听起来更像是你报名参加了一个你完全没有资格参加的项目。您试图完成的工作是,如果犯了一个小错误,可能会使站点暴露在巨大的安全问题中。为什么不帮你的名誉一个忙,帮你同意为之工作的人一个忙,优雅地离开,直到你有资格。
- 我真的希望这不是为任何一个我有帐户的网站。
- 我担心自己可能不合格,但我已经从零开始克服了以前的项目,在宣布退出之前只需要更多的信息。我还在探索过程中,想看看你们对我被问到的问题的复杂性和范围有什么看法。你能在我面前摆出什么实质性的东西吗,而仅仅是指出我可能是不合格的?[hash是sha1,我想知道是否可以重用他的代码]。不过,我明白你的意思[而且不会排除这一点!]我希望能收到你的来信,也希望能得到你真诚的帮助。
- 在我最初的求助搜索中没有看到这样的链接,但这里举一个例子。stackoverflow.com/questions/3164978/…。不过,对于清醒的思考/建议,还是一个真正的THX。
生成密码重置的常见方法如下:
检查电子邮件地址是否属于注册用户。
生成随机的不可预测代码。
将此代码与用户ID和到期日期一起存储在数据库中。
将带有此代码的链接发送到给定的电子邮件地址,因此只有用户本身才能获得此链接。
当用户单击链接时,提取代码,并检查其哈希是否在数据库中。
如果它在数据库中,并且尚未过期,您知道用户ID,可以允许用户输入新密码(不要向用户发送自生成的密码)。
将代码标记为已用或从数据库中删除。
我希望这能给你一个必要步骤的想法。如果您想了解有关bcrypt和salting的更多信息,可以参考本教程中有关哈希密码的内容。
- 我正与公司总裁密切合作,不会产生完全未经他审查的代码。非常感谢你的警告和想法。