我正在开发我的第一个需要登录的web应用程序,并且它已经到了我必须决定如何存储密码的时候了。我一直在大量阅读正确的方式来散列密码和添加盐。我想到,推荐的大多数方法都依赖于存储在数据库中的密码散列信息的一些变化,无论是使用全部或部分用户名作为盐或其他随机值的一些变化。用密码提供密码
相反,我想使用用户自己的密码作为盐的密码。使用一种算法来混合密码并以某种方式将其添加到自身中作为盐。当然,如果攻击者可以访问存储的哈希和算法的源代码,那么这将会受到影响,但是在这种情况下任何盐都会受到影响。我的应用程序实际上可能不需要这种安全级别,但这只是我在阅读时开始考虑的事情。
我只是想从一些更有经验的开发人员那里得到一些反馈。任何反馈意见。
为什么改变什么可行? – Gabs00
如果你使用(混乱)密码作为盐,那么黑客将不再需要找到一个字符串哈希到相同的值,以获得密码,他们只需要解开密码。盐通常以密码哈希存储在纯文本中,因此获得盐很容易。那么保护你的密码的唯一方法就是你混淆它的程度,除非你真的知道你在做什么,否则可能会有一些可以利用的弱点...... – twalberg
@twalberg我认为这个概念背后想法是根本消除存储密码盐的需要。 –