2013-04-02 34 views
3

今天我读了not-implemented.comBcrypt密码散列,因为它是慢?

SHA-256应该在高速散列函数所需的大多数情况下进行选择。它被认为是安全的,没有已知的理论漏洞,并且它有一个合理的32字节的摘要大小。对于像散列用户密码,虽然设计是缓慢的功能是首选:一个伟大的是bcrypt。

有人能解释一下最后一句:

类的东西散列用户密码,虽然设计是缓慢的功能是首选:一个伟大的是bcrypt。

我不说这是不正确的,我的问题很简单:

为什么最好的散列用户密码使用一个缓慢的功能?

回答

4

因为如果需要更多时间对值进行散列,则密码的使用时间也会更长。

请记住,慢意味着它需要更多的计算能力。当一个潜在的黑客试图暴力破解密码时也是如此。

9

在你身边,密码哈希需而很少计算。但是,谁试图从蛮力被盗哈希强制密码攻击者,依靠计算许多哈希越好。

因此,如果您登录现在只需100毫秒,而不是0.1(可能更低),这不是真正适合你的一个问题。但是,如果攻击者需要2000天才能破解密码而不是2天,那么这对于攻击者来说会产生巨大的影响。

bcrypt被设计成缓慢,不要让任何捷径。

1

它需要更多的努力,以蛮力攻击密码。算法越慢,每秒可以做出的猜测就越少。额外的时间将不被系统的用户所察觉,但会使其难以破解的密码。