详解python破解zip文件密码的方法


Posted in Python onJanuary 13, 2020

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()

破解结果:

详解python破解zip文件密码的方法

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()

破解结果:

详解python破解zip文件密码的方法

提示: 多线程对数字型的运算没有多大帮助

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破解zip文件密码的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python基础教程之缩进介绍
Aug 29 Python
举例讲解Python面相对象编程中对象的属性与类的方法
Jan 19 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python实现的多线程http压力测试代码
Feb 08 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
python实现简易自习室座位预约系统
Jun 30 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 #Python
python批量处理txt文件的实例代码
Jan 13 #Python
Python hashlib常见摘要算法详解
Jan 13 #Python
Pytorch释放显存占用方式
Jan 13 #Python
pytorch 实现删除tensor中的指定行列
Jan 13 #Python
python基于event实现线程间通信控制
Jan 13 #Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 #Python
You might like
php扩展ZF――Validate扩展
2008/01/10 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
php面向对象重点知识分享
2019/09/27 PHP
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
python引用DLL文件的方法
2015/05/11 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
PyQt5实现简易计算器
2020/05/30 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
如何基于python操作excel并获取内容
2019/12/24 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
十佳班主任事迹材料
2014/01/18 职场文书
银行贷款收入证明
2014/10/17 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
springcloud整合seata
2022/05/20 Java/Android