【问题标题】:Forgot password functionality - retrieve and mail - symfony2忘记密码功能 - 找回和邮寄 - symfony2
【发布时间】:2014-01-31 17:35:02
【问题描述】:

我想实现忘记密码功能。我不想更改密码。相反,我只是想将密码邮寄到提供的电子邮件地址。

但我怎样才能获得解码后的密码并将其邮寄到电子邮件地址?

到目前为止,我从 SO 和其他链接中得到的只是密码更改过程。我不想要那个。我找不到任何关于此的示例。我正在使用以下编码器:

algorithm:        sha512
encode_as_base64: true
iterations:       1

请帮忙...

【问题讨论】:

  • 你不能,它是散列的,它不是“可检索的”——这是一件非常好的事情
  • @Dagon 我不想看到原始密码。 symfony没有办法处理吗?
  • 如果您不想看到原始密码,您要向用户发送什么电子邮件?
  • 你真的不应该通过电子邮件发送密码。除非你当然想在这个网站上结束:) plaintextoffenders.com 相反,编写密码重置过程。通过电子邮件向他们发送一些您存储在他们的用户记录中的唯一长字符串。像 yoursite.com/pwdreset.php?id=1234567890-1234567890-1234567890 之类的东西......并确保 ID 在一天后或重置后无效。

标签: php symfony password-recovery forgot-password


【解决方案1】:

简短的回答:你不能,这是一件非常好的事情。

哈希 仅应用单向转换以保护原始密码。这是为了在安全漏洞的情况下保护密码的安全性(需要进行计算成本高的操作才能找到哈希冲突)。这是哈希的数学属性(sha512 是一种哈希算法),无法反驳。

事实上,安全审核员经常验证网站的重置密码功能不会返回他们设置的原始密码。

允许 Symfony2 这样做的唯一方法是创建自己的编码器。 However, not hashing your user's password would be a glaring security risk.

我还建议您增加用于散列密码的迭代次数(以加强散列)和/或切换到bcrypt。快速散列是坏散列。

【讨论】:

  • 好的!知道了。谢谢你的详细回答:)
猜你喜欢
  • 1970-01-01
  • 2012-02-22
  • 2013-12-09
  • 2011-10-19
  • 2011-09-28
  • 1970-01-01
  • 2017-07-06
  • 2013-10-12
  • 2023-04-08
相关资源
最近更新 更多