我试图了解如何维护使用 bcrypt 散列的密码的工作因子。
我在那里找到了一个解决方案:Optimal bcrypt factor,这基本上是说您可以在用户登录时重新散列。
但是我不明白它如何解决长时间不登录的用户的问题。在这种情况下,我想唯一的解决方案是向他们发送一封电子邮件,说他们的帐户出于安全目的将被停用?
我试图了解如何维护使用 bcrypt 散列的密码的工作因子。
我在那里找到了一个解决方案:Optimal bcrypt factor,这基本上是说您可以在用户登录时重新散列。
但是我不明白它如何解决长时间不登录的用户的问题。在这种情况下,我想唯一的解决方案是向他们发送一封电子邮件,说他们的帐户出于安全目的将被停用?
一个用 Bcrypt 散列的密码仍然受到很好的保护,即使你需要增加成本因素,也许你可以等待下一次登录。如果您的网站真的需要这么多的安全性,有两种方法可以解决这个问题,我知道:
1)您可以重置此密码,引导用户下次登录时进入丢失密码页面。当然,向用户解释原因是有礼貌的。
2)您可以将当前密码哈希的成本因子和盐存储到数据库中。然后使用 Bcrypt 对已经散列的密码进行散列。如果用户下次登录,您可以先用存储的盐/成本对其进行哈希处理,然后您可以获取结果并对其进行正常哈希处理。如果登录成功,不要忘记更新到新的成本因素。
希望这听起来有点可以理解。