Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想做一个安全的网站。每次用户登录时更新密码盐是个好主意吗?
编辑:我另外使用硬编码的全局盐。
不,这根本没有意义。
加盐哈希的目的是即使原始密码相同也使它们唯一。这避免了例如彩虹表攻击或在哈希足以登录的另一个网站上重新使用被盗的哈希(发生在糟糕的记住我实现中)。
假设攻击者从您的数据库中获取了存储的密码哈希。这通常意味着他知道盐和最终哈希。现在他已经可以暴力破解这个单一的密码了。假设没有冲突,当暴力攻击成功时,他最终会得到用户的实际密码。无论此时使用什么盐,那个都可以工作。
有关加盐的更多信息,我建议您阅读有关IT 安全的出色答案
应该为每个用户随机生成一个新的盐,并且每次他们至少更改密码。我不确定每次登录生成一个新的是否是一个好主意。这似乎有点矫枉过正,并没有提供任何显着的额外安全性。
您可以尝试使用额外的静态站点范围的密钥。
在这种情况下,即使您的数据库遭到破坏,哈希和盐也将可用。但是黑客需要访问本地文件才能获得您的静态密钥。
散列(散列(salt + secret_key)+ 密码)