如果我希望用户在存储为哈希后编辑其原始密码,我可以应用哪种方法。
答案 0 :(得分:3)
向用户显示其密码非常不安全的网站。 始终哈希,从不向用户显示其密码。如果他们忘记了密码,则用户重置密码并重新进行密码并将其替换为数据库。但是从不向用户显示他们的密码和总是哈希。
答案 1 :(得分:2)
请勿在数据库中存储未散列的密码。
请勿以“更改密码形式”
显示密码请勿在任何地方显示密码哈希值。
为用户提供编辑密码的表单,但不提供前一个密码。只需向用户显示一个空文本框,用于插入新密码,同时还有一个文本框供用户输入当前密码。
您可以使用password_hash()
检查使用password_verify()
进行哈希密码的任何密码。
如果password_verify()
返回true
,只需使用UPDATE
查询来更改存储的哈希值。
答案 2 :(得分:1)
至于保存它的建议,请不要在数据库中存储未加密的密码:如果访问过您的数据库,它们中的每一个都会被公开。
关于你的问题:加密或散列的单词非常困难(或者显然是不可能的,你进行散列或加密吗?)并且恢复成本很高。我理解可用性问题,但是一旦存储了密码,用户就永远不能查询它(这就是我们的密码恢复措施)...简而言之,你可以让他们创建新的密码,但你不能拥有他们编辑他们所拥有的那个,因为你甚至不知道它。
PS:所有这些都假设密码已经存储。当然......如果我们谈论的是html密码标签,那么问题就不同了。