Python 之如何暴力破解加密文件

背景介绍:

在工作中我们可能会遇到一些加密过的压缩文件,如果需要获取压缩文件的内容,必须先解密,然而仅凭手动去尝试肯定是不大可能的,那么我们借助 Python 来实现会极大的增加破解成功的可能性。

 

Python 代码实现如下:

 1 import zipfile
 2 import rarfile
 3 import time
 4  
 5 def extractFiles(filename):
 6     #记录开始时间
 7     start_time = time.time()
 8  
 9     #判断压缩包类型并读取压缩包
10     if(filename.endswith(".zip")):
11         fp=zipfile.ZipFile(filename,'r')
12     if(filename.endswith(".rar")):
13         fp=rarfile.RarFile(filename,'r')
14  
15     #读取密码本文件
16     try:
17         passwdfiles=open("passwd.txt")
18     except:
19         print("the file not found")
20  
21     #遍历密码本中的每一行密码去匹配 zip 加密文件
22     for line in passwdfiles.readlines():
23         passwd= line.strip("\n")
24         # passwd=line
25         try:
26             #调用extractall来依次尝试密码
27             fp.extractall(path='.',pwd=passwd.encode("utf-8"))
28             print("the %s of passwd is right"%passwd)
29         except:
30             print("the %s of passwd is wrong"%passwd)
31  
32     # 记录结束时间
33     end_time = time.time()
34     print('破解压缩包花了%s秒' % (end_time - start_time))
35  
36 if __name__ == '__main__':
37     extractFiles("test.zip")

小结:

上述示例代码适合以.zip和.rar两种格式结尾的压缩文件的解密,其主要思路是循环使用密码本中的每一行密码尝试进行压缩文件的解密操作,最后记录整个解密过程共花费的时长,以秒为单位。

 

欢迎关注【无量测试之道】公众号,回复【领取资源】
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。

备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:


添加关注,让我们一起共同成长!

posted on 2021-10-22 14:25  Wu_Candy  阅读(976)  评论(0编辑  收藏  举报