详解python破解zip文件密码的方法
更新时间:2020年01月13日 09:48:29 作者:阿优乐扬
这篇文章主要介绍了python破解zip文件密码的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
1、单线程破解纯数字密码
注意: 不包括数字0开头的密码
import zipfile,time,sys
start_time = time.time()
def extract():
zfile = zipfile.ZipFile('IdonKnow.zip')#读取压缩包,如果用必要可以加上'r'
for num in range(1,99999,1):
try:
pwd = str(num)
zfile.extractall(path='.',pwd=pwd.encode('utf-8'))
print ("当前压缩密码为:",pwd)
end_time = time.time()
print ('单线程破解压缩包花了%s秒'%(end_time-start_time))
sys.exit(0)
except Exception as e:
pass
if __name__=="__main__":
extract()
破解结果:

2、多线程破解纯数字密码
注意: 不包括数字0开头的密码
import zipfile,time,threading
start_time = time.time()
flag = True # 用于判断线程是否需要终止,为True时程序执行
def extract(password, file):
try:
password = str(password)
file.extractall(path='.', pwd=password.encode('utf-8'))
print ("当前压缩密码为:",password)
end_time = time.time()
print ('多线程破解压缩包花了%s秒'%(end_time-start_time))
global flag
flag = False#成功解压其余线程终止
except Exception as e:
pass
def main():
zfile = zipfile.ZipFile("test.zip", 'r')
for number in range(1, 99999,1):
if flag:
thr1 = threading.Thread(target=extract, args=(number, zfile))
thr2 = threading.Thread(target=extract, args=(number, zfile))
thr1.start()
thr2.start()
thr1.join()
thr2.join()
if __name__ == '__main__':
main()
破解结果:

提示: 多线程对数字型的运算没有多大帮助
3、破解英文+数字型的密码
import random,zipfile,time,sys
class MyIter():
cset = 'abcdefghijklmnopqrstuvwxyz0123456789'
def __init__(self,min,max):#迭代器实现初始方法,传入参数
if min < max:
self.minlen = min
self.maxlen = max
else:
self.ninlen = max
self.maxlen = min
def __iter__(self):#直接返回slef实列对象
return self
def __next__(self):#通过不断地轮循,生成密码
rec = ''
for i in range(0,random.randrange(self.minlen,self.maxlen+1)):
rec += random.choice(MyIter.cset)
return rec
def extract():
start_time = time.time()
zfile = zipfile.ZipFile('test1.zip','r')
for password in MyIter(1,4):#随机迭代出1~4位数的密码,在不明确位数的时候做相应的调整
if zfile:
try:
zfile.extractall(path='.',pwd=str(password).encode('utf-8'))
print ("当前压缩密码为:",password)
end_time = time.time()
print ('当前破解压缩包花了%s秒'%(end_time-start_time))
sys.exit(0)
except Exception as e:
print ('pass密码:',password)
pass
if __name__=="__main__":
extract()
破解结果:

总结
以上所述是小编给大家介绍的python破解zip文件密码的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关文章
python实现三种字符串格式化方法(%、format、f-string)
本文主要介绍了python实现三种字符串格式化方法,主要包括%、format、f-string,具有一定的参考价值,感兴趣的可以了解一下2023-10-10
Python cookbook(数据结构与算法)实现优先级队列的方法示例
这篇文章主要介绍了Python cookbook(数据结构与算法)实现优先级队列的方法,结合实例形式分析了Python中基于给定优先级进行队列元素排序的相关操作技巧,需要的朋友可以参考下2018-02-02
在python3中pyqt5和mayavi不兼容问题的解决方法
今天小编就为大家分享一篇在python3中pyqt5和mayavi不兼容问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-01-01


最新评论