-1

也许愚蠢的问题......,

但是我问自己,一旦我使用 password_hash() 函数对其进行哈希处理,将密码(纯文本)存储在数据库中是否有用......

  • 由于 password_verify() 只使用 hashnSalt 来检查 pass 是否正确。

  • 一旦“恶棍”获得对数据库的访问权,他就没有纯文本密码(会要求他有时间暴力破解它们)

  • 如果用户忘记了他的密码,他将无法找回密码:唯一的方法是重新创建一个新的通行证。

我在 50/50..

4

3 回答 3

2

在任何情况下都不要存储明文密码。这样做首先破坏了散列密码的全部目的。

使用单向拥有算法的全部目的是,如果黑客进入您的站点并窃取您的数据库,那么该黑客几乎不可能在不使用暴力破解或表格的情况下获取您的用户的密码。(函数引入的盐也减轻了表格的风险password_hash()。)

即使作为网站所有者/运营商,您也永远无法检索用户的密码(如果可以,那么黑客也可以)。这就是为什么任何将向您发送密码而不是让您重置密码的网站都会立即成为危险信号,因为它们没有安全地存储您的凭据。

处理此问题的正确方法是,如果用户忘记了他们的密码,您发送一个允许用户创建新密码的临时链接。

于 2013-08-15T19:37:43.393 回答
1

第一:永远不要存储纯文本密码!可能用户在多个地方使用相同的密码,而您会将登录信息提供给攻击者的其他服务。

我将只使用创建的哈希值,如果用户需要记住密码,他/她将不得不用新密码重置它。您可以选择执行此操作的方法,但发送带有唯一临时链接的电子邮件是最佳解决方案。

于 2013-08-15T19:35:31.243 回答
0

如果用户忘记了密码,您可以向他/她发送带有指向其页面链接的电子邮件,并要求他更改密码。或者您可以为用户设置新密码并将其发送给该用户

于 2013-08-15T19:33:32.500 回答