当用户想要重置密码时,会发送一封带有唯一URL的电子邮件,以便他可以重置.像这样:website.com/forgot.php?email'.$email.'&hash='.$thehash
$ thehash是存储在数据库中的每个用户的唯一哈希.
问题是$ thehash就像它在URL中使用的那样存储在数据库中.这就像用纯文本存储密码一样愚蠢.如果有人可以访问数据库,那么我将密码与sha512和安全盐一起存储并不重要,攻击者可以使用数据库中的所有值(电子邮件和哈希)访问所有帐户,更改用户的密码.
当我对用户密码进行哈希处理时,用户有一部分信息是在数据库中找不到的,那么明文密码就可以解决了.但现在,我不知道该怎么做,因为我没有在数据库中找不到任何独特的东西.那么解决这个问题的好方法是什么?如何安全存储哈希?