2016-09-14 72 views
1

如果我在将密码存储在我的数据库之前对密码进行哈希处理,是否足以阻止它们被某人恢复?如何在将密码存储在我的数据库之前安全地对密码进行哈希处理?

我只是直接谈论数据库恢复,而不是任何其他类型的攻击,例如应用程序登录页面中的蛮力,客户端上的键盘记录和橡胶密码分析。任何形式的哈希都不会阻止这些攻击。

我很担心,如果BD承诺,很难或甚至不可能获得原始密码。如何增加这方面的安全保证?

还有哪些担忧会阻止访问密码?有没有更好的方法来做这个散列?

+2

取决于你的散列。如果您使用谷歌解码器环,那么您的安全性至关重要。如果您使用现代的密码安全散列,那么您直到基础散列函数被证明是数学上易受攻击的,或者计算机足够强大,以至于他们能够在有效时间内击穿整个密钥空间为止。 –

+2

我投票结束这个问题,因为这是一个跨站点的[如何安全地哈希密码?](http://security.stackexchange.com/q/211/45523) –

+0

什么做你的意思是,如果BD是Commit_,数据库?你可以做的是加密散列,所以攻击者无法在没有密钥的情况下开始暴力破解。在这种情况下,攻击者也需要在服务器上拥有特权,才能获得密钥,而不仅仅是读取数据库。试图在我的[tutorial](http://www.martinstoeckli.ch/hash/en/index.php)结尾处解释这个问题,以便安全地存储密码。 – martinstoeckli

回答

2

请使用PBKDF2 10000次迭代。现在NIST也建议这样做(虽然不是用于密码散列,但它也非常适合)。

PBKDF2以及需要相对较强密码的密码策略会使攻击者很难恢复密码,即使有哈希也是如此。