暴力破解攻击排列组合

3
假设密码是8个字符的字母数字混合,根据我的理解,排列组合数如下:
26个小写字母 26个大写字母 10个数字
因此,如果你想对这个密码进行暴力破解,平均需要尝试(62 ^ 8) / 2次。
然而,假设你知道密码至少有4位数字,因此排除了对前4位数字的任何尝试,那么剩余排列组合的答案难道不应该是((62 ^ 8) - (62 ^ 4)) / 2吗?
我是否遗漏了什么,或者这就是正确的答案?
3个回答

6

是的,你漏掉了一些东西。不,那不是正确答案 :-)

你原来的计算是针对一个恰好为八个字符长的密码,而不是长度在八个或以下的密码。

对于长度在四到八个字符之间的密码,实际上有比你原来的计算更大的搜索空间(这不是因为搜索空间越小就意味着需要更多时间,而是因为原来的计算是错误的)。

对于一个长度在一到八个字符的密码,搜索空间实际上是:

(62 ^ 1) + (62 ^ 2) + (62 ^ 3) + (62 ^ 4) +
(62 ^ 5) + (62 ^ 6) + (62 ^ 7) + (62 ^ 8)

然后,您可以将该数字除以2,得到平均支票数(由于我们只是讨论比率,因此我不会这样做)。

接下来,如果您有额外的信息,即密码至少为四个字符长,则可以排除前三项,得到:

                                 (62 ^ 4) +
(62 ^ 5) + (62 ^ 6) + (62 ^ 7) + (62 ^ 8)

请解释一下,第二个例子是如何产生更大的搜索空间的? - Maxim Gershkovich
它产生的搜索空间比您原始的错误计算(62^8)更大,但不比正确的计算(我展示的第一个)更大 - 在答案中澄清。 - paxdiablo
好的,抱歉我明白了。但是要明确一点,如果您确实有更多信息,特别是密码必须大于4个字符,那么您的搜索空间会减少,对吗?附言:感谢您的意见。 - Maxim Gershkovich
@Maxim,就像我7岁的儿子会说的那样:完全正确 :-) 如果您拥有限制密码数量的信息,则搜索空间会减少。 - paxdiablo
对此,Pax很明智地选择了保持沉默 :-) 不,他现在只是在努力理解乘法,指数还超出了他的能力范围,但有一个技术大牛爸爸和一位高级企业法务会计妈妈,我希望他已经准备好了 :-) - paxdiablo

0

对于最多8个字符的密码,有62^8 + 62^7 + 62^6 + 62^5 + 62^4 + 62^3 + 62^2 + 62种不同的密码。然而,如果您知道密码长度至少为4个字符,则可以删除最后3项,得到类似于62^8 + 62^7 + 62^6 + 62^5 + 62^4不同的组合。


0

我猜测计算密码可能的组合数的正确方法是:

(62^4) + (62^5) + (62^6) + (62^7) + (62^8)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接