猜测指定范围内的用户密码需要多长时间


How long would it take to guess user passwords in a specified range?

我使用crypt函数在php中使用blowfish。我想知道如果密码的范围是0001-9999,猜测用户密码需要多长时间?

我应该为用户实现另一个输入密码值吗。

这基本上给了你10000个组合,猜起来会很快(即时)。

检查这个旧表,它现在快得多密码恢复速度

在任何现代计算机上测试所有大小为4的数字密码都非常快速。您应该确保您的密码由不同的字符(大写/小写字母、标点符号、特殊字符)组成,并且更长

请看Jeff Atwood关于这个主题的这篇非常有趣的文章。

假设您将散列速度和可用性很好地结合在一起。

more hashing time =~ more brute-force resilient

但与此同时

more hashing time =~ less usability 

假设您做出了一些妥协,并决定密码检查逻辑最多需要5秒是可以的(您进行了大量迭代,这意味着您对密码进行了多次散列处理)。

中断的时间(以小时为单位)=组合*哈希时间(以秒为单位)/3600(+查找时间,琐碎)

让我们试试

中断时间(小时)=9999*5/3600=大约13小时48分钟

所以底线是,听从@Wookai的建议,不要使用短数字密码。