我想实现忘记密码功能。我不想更改密码。相反,我只想将密码邮寄到提供的电子邮件地址。
但是如何获取已解码的密码并将其邮寄到电子邮件地址?
直到现在我从SO和其他链接到目前为止都是密码更改过程。我不希望这样。我找不到任何关于此的例子。我正在使用以下编码器:
algorithm: sha512
encode_as_base64: true
iterations: 1
请帮忙......
答案 0 :(得分:6)
简短回答:你做不到,这是非常好的事。
哈希仅应用单向转换以保护原始密码。这是为了在安全漏洞的情况下保护密码的安全性(需要计算成本高昂的操作来查找散列冲突)。这是散列的数学属性(sha512
是散列算法),无法对抗。
事实上,安全审核员经常会确认网站的重置密码功能不会返回他们设置的原始密码。
允许Symfony2执行此操作的唯一方法是创建自己的编码器。 However, not hashing your user's password would be a glaring security risk
我还建议你增加用于散列密码的迭代次数(以加强散列)和/或切换到bcrypt
。快速哈希是一种糟糕的哈希。