作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个不错的网站http://www.howsecureismypassword.net/这决定了破解密码需要多长时间。
我想要的是实现这样的功能,所以我需要一个算法
最佳答案
了解常见的密码攻击向量将使您了解如何进行计算。当我们需要一个数字时,假设台式计算机每秒可以检查 40 亿 (4x109) 个密码,这看起来是 about right .
重要的是要意识到攻击者很少试图仅破解您的密码。相反,他们将拥有大量帐户的用户 ID,并且他们想尝试破解尽可能多的用户 ID。因此,他们将大部分时间投入到破解简单的密码上,而不是为难的密码烦恼是值得的。
0. 非常明显的攻击
尝试输入用户 ID 作为密码。令人惊讶的是,有多少人这样做。您的密码可立即破解。
1.字典攻击
这很简单。攻击者只需要保留(比如)106 个最常用密码的列表,并检查每个密码一次。这可以在一秒钟内完成。如果您的密码在最常用密码列表中,那么它几乎可以立即被破解。
2. 蛮力
如果您的密码不在字典中,那么另一种选择是使用蛮力。使用此方法破解密码所需的时间取决于 (a) 密码的长度,以及 (b) 包含密码的符号集。一般公式是
timeTaken = (sizeOfSymbolSet ^ passwordLength) / (4*10^9) # (seconds)
Length Time
4 0.1 millisecs
6 0.1 seconds
8 1 minute
10 10 hours
12 9 months
Length Time
4 25 millisecs
6 4 minutes
8 28 days
10 800 years
12 8 million years
t8Qkx#rxZAM@
%Kuc;p8WHmFU
xDE!XE$rLGh4
KJdx2K8BS33K
HTaeCc&t46L;
o
与
0
,
l
与
1
,
a
与
@
等等。一旦你有了一个字典单词列表,生成所有这些替换就很简单了。猜测一下,您可能会将列表的长度增加 1000 倍,这仍然可以在一秒钟内检查。
关于security - howsecureismypassword.com 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12578851/
有一个不错的网站http://www.howsecureismypassword.net/这决定了破解密码需要多长时间。 我想要的是实现这样的功能,所以我需要一个算法 最佳答案 了解常见的密码攻击向量
我是一名优秀的程序员,十分优秀!