您当前的位置:首页 > 计算机 > 编程开发 > Python

python暴力破解rar压缩文件

时间:11-16来源:作者:点击数:

文章介绍了一个使用Python实现的多线程密码破解脚本,通过生成数字和字母的组合密码,尝试解压RAR文件。根据测试,增加线程数量可以显著减少解压时间。作者展示了不同线程数下CPU占用率和所需时间的变化,强调了并行处理在提高效率上的优势。

代码

import threading	#多线程
import rarfile		#解压
import string		#字符串
import itertools	#组合
start=1
def txt():                                      	#创建密码列表
    str1=string.digits                          	#0~9数字
    str2=string.ascii_letters                   	#大小写所有字母
    str3=str1+str2
    password=itertools.product(str3,repeat=3)    	#数字+字母的3位数的列表组合
    for i in range(20):     #创建20个线程遍历密码,加快点速度
        t=threading.Thread(target=bianli_password,args=(password,))
        t.start()

def bianli_password(password):      #遍历密码
    for i in password:  #遍历3位数的列表
        pwd=''.join(i)  #取消连接符
        rar(pwd)        #遍历一个密码就试着解压一次
        if start==0:    #如果解压成功就结束程序
            break

def rar(pwd):           #解压rar
    global start
    text=pwd
    file_name="test.rar"
    rf=rarfile.RarFile(file_name,'r')
    rf.setpassword(text)
    try:
        rf.extractall()
        print("解压成功,密码是:"+text)
        start=0
    except:
        print("继续尝试。。"+text)

if __name__=="__main__":
    txt()

思路:

1、做个解压函数
2、做个密码列表
3、对密码列表进行遍历,获得一个密码尝试解压一下
4、直到成功解压,退出程序

作者:

设test.rar文件密码为123

①1个线程

cpu占用率:17%

需要时间:7分30秒

②10个线程

cpu占有率:29%~72%

需要时间:3分20秒

③20个线程

cpu占有率:92%~100%

需要时间:2分21秒

所以,添加线程会让程序执行更快哟( ̄▽ ̄)。

不过像123这样三位数的密码就需要2分钟,那8位呢?岂不是要算死了( ̄~ ̄)

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐