您的位置  > 互联网

密码破解的底层逻辑相通,构建一个密码库

先说主流的:暴力破解、掩模破解、字典破解、组合破解。

引入一个概念:碰撞。

在理解这个概念之前,我们先构建一个场景。 你手里有一堆钥匙。 你需要使用其中一把钥匙来打开门,但你不知道哪把钥匙是门,所以你逐一测试每把钥匙。

用钥匙测试门锁是否可以打开。 这个过程称为“碰撞”。

上述主流密码破解方法的底层逻辑是相同的。 建立密码库。 这个库中有很多密钥(待测试的密码)。 他们一一“碰撞”。 成功与否取决于密码库中是否包含正确的密钥。

字符类型:

密码中,常用的字符类型(仅限国内)包括以下几类:

1、全角符号(单个符号的粗度是半角符号的两倍):

`~! @#$%^&*()

2、半角符号:

`~!@#$%^&*()

3、全角数字(单个符号比半角数字粗一倍):

4. 半角数字:

5、26个全角英文大写字母(单个符号比半角英文粗一倍):

cvbnm

6. 26个全角英文小写字符:

7. 汉字:

赵谦 孙俪 周 吴征 王

为了更直观地了解每种密码破解的原理,我们以10位密码为例,做以下假设:

以上七种字型每一类都只有10个不同的字符(实际上比这个数字大得多,以汉字为例,常用汉字有近5000个),总共70个字符。

1、暴力破解构建密码库:

10位密码每一位可能有70个字符,总的密码库为:70^10=2.8x10^18;

碰撞

使用密码库中的候选密码进行一一碰撞。

2.面膜开裂

与暴力破解不同的是,可以通过字符分类来减少密码库中需要选择的密码数量,提高效率。

例如:10位密码,第1~2位为小写字母,第3~4位为大写字母,第5~6位为汉字,第7~8位为数字,第9~10位为全角符号;

构建密码库

1~2位:可能的字符组合数10x10=100;

3~4位:可能的字符组合数为10x10=100;

5~6位:可能的字符组合数为10x10=100;

7~8位:可能的字符组合数为10x10=100;

9~10位:可能的字符组合数为10x10=100。

密码库中需要选择的密码数量为:100^5=10^10;

碰撞

使用密码库中的候选密码进行一一碰撞。

3、字典破解建立密码库

与上述两种方法的区别在于,不需要建立密码库,使用现有的通用字典,或者制作相应的字典作为密码库使用,假设为10^3;

碰撞

使用密码库中的候选密码进行一一碰撞。

4、组合破解

例如:10位密码:1~2位为小写字母,3~5位不清楚,6~10位分为两组,一组有3个汉字,另一组有2个全角字符,但不知道两组中谁在前,谁在后;

构建密码库

1~2位:可能的字符组合数10x10=100;

3~5位:可能的字符组合数=70^3;

6~10位:可能的字符组合数(中文:;全角字符:10x10;位置排序:2)=2x10^5;

密码库中待选择的密码数量为:^^4=6.86x10^11;

碰撞

使用密码库中的候选密码进行一一碰撞。

5、总结密码库大小:

暴力破解:2.8x10^18

掩模破裂:10^10

字典破解:10^3

组合破解:6.86x10^11;

读完本文,您应该对密码破解有了一个清晰的认识。 不同的密码破解方法都指向一个共同点“密码线索”。

如果没有密码线索,可以使用暴力破解或字典破解;

有密码线索,可以使用单词掩码破解、字典破解、组合破解。

6. 预览

您是否好奇为什么字典破解和组合破解如此受欢迎? 您是否好奇是否存在可被利用的后门?

请听下次分解。