Security 如何在将密码存储到我的数据库之前安全地散列密码?

Security 如何在将密码存储到我的数据库之前安全地散列密码?,security,hash,cryptography,passwords,Security,Hash,Cryptography,Passwords,如果在将密码存储到数据库之前对其进行散列,是否足以防止他人恢复密码 我所说的是直接从数据库恢复,而不是任何其他类型的攻击,例如应用程序登录页面中的暴力攻击、客户端上的键盘记录程序和Ruberhose密码分析。任何形式的哈希都无法阻止这些攻击 如果BD被提交,我担心获取原始密码会变得困难甚至不可能。如何加强这方面的安全保障 还有哪些其他问题会阻止访问密码?是否有更好的方法生成此哈希?请与10000次以上的迭代一起使用。NIST现在也推荐这种方法(虽然不是用于密码散列,但也非常适合) PBKDF2以

如果在将密码存储到数据库之前对其进行散列,是否足以防止他人恢复密码

我所说的是直接从数据库恢复,而不是任何其他类型的攻击,例如应用程序登录页面中的暴力攻击、客户端上的键盘记录程序和Ruberhose密码分析。任何形式的哈希都无法阻止这些攻击

如果BD被提交,我担心获取原始密码会变得困难甚至不可能。如何加强这方面的安全保障

还有哪些其他问题会阻止访问密码?是否有更好的方法生成此哈希?

请与10000次以上的迭代一起使用。NIST现在也推荐这种方法(虽然不是用于密码散列,但也非常适合)


PBKDF2以及要求相对强的密码的密码策略将使攻击者很难恢复密码,即使在使用哈希时也是如此。

取决于您的哈希。如果你使用一个cerealbox解码环,那么你的安全性本质上是零。如果您使用现代晶体安全散列,那么在基础散列函数在数学上被证明是脆弱的之前,您是安全的,或者计算机变得足够强大,它们可以在有用的时间内耗尽整个密钥空间。我投票结束这个问题,因为这是一个跨站点的重复,如果BD被提交,数据库是什么意思?您可以做的是加密散列,这样攻击者就无法在没有密钥的情况下启动暴力强制。在这种情况下,攻击者也需要服务器上的权限才能获得密钥,而不仅仅是对数据库的读取访问。在我关于安全存储密码的演讲结束时,我试图解释这一点。