如何解开文件密码 (文件密码正确解密方法)

这一回合,我们将关注点聚集在密码破解的底层操作上:密码破解的方式 。

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

引入一个概念:碰撞。

理解这个概念前,我们先构建一个场景,你手上的一串钥匙,你需要用其中一把钥匙打开房门,但你不知道房门的钥匙是哪一把,于是你逐个钥匙去测试。

用一把钥匙测试门锁是否能打开,这个过程就叫“碰撞”。

上述主流密码破解方式的底层逻辑相通,构建一个密码库,这个库里有很多钥匙(待测试的密码),逐个“碰撞”,成功与否,看密码库中是否包含正确的钥匙。

字符类型:

密码中,常用的字符类型(仅限于国内)有如下几类:

1、全角符号(单个符号比半角符号胖一倍):

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

2、半角符号:

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

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

1234567890

4、半角数字:

1234567890

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

qwertyuiopasdfghjklzxcvbnm

6、全角英文小写26个:

qwertyuiopasdfghjklzxcvbnm

7、汉字:

赵钱孙李周吴郑王

为了对各密码破解的运行方式有更直观的理解,我们以10位数的密码为例,并做如下假定:

上述7类字符类型,每类只有10个不同的字符(实际上远大于这个数,以汉字为例,常用汉字接近5000个),共计70个字符。

一、*力暴**破解

构建密码库:

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

碰撞

用密码库中的待选密码,逐个碰撞。

二、掩码破解

与*力暴**破解的区别在于,可利用字符的分类,减少密码库中待选密码数量,提高效率。

比如: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;

碰撞

用密码库中的待选密码,逐个碰撞。

三、字典破解

构建密码库

与上述两种方式的区别在于,无需构建密码库,使用现有的通用字典,或者制作相应的字典,用做密码库,假定为10^3;

碰撞

用密码库中的待选密码,逐个碰撞。

四、组合破解

比如:10位数的密码:1~2位是小写字母、3~5位是不清楚、6~10位分为两组,其中一组3个中文,另一组2个全角字符,但不知道两组谁在前谁在后;

构建密码库

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

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

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

密码库中待选密码数量为:100x70^3x2x10^4=6.86x10^11;

碰撞

用密码库中的待选密码,逐个碰撞。

五、总结

密码库大小:

*力暴**破解:2.8x10^18

掩码破解:10^10

字典破解:10^3

组合破解:6.86x10^11;

读到这里,你应该对密码破解有了一个清晰的认识,不同的密码破解方式,指向一个共通点“密码线索”。

没有密码线索,可以使用*力暴**破解、字典破解;

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

六、预告

你是否好奇,为何字典破解、组合破解备受推崇,你是否好奇是否有后门可以利用。

请听下回分解。