详解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 18 Python
python中range()与xrange()用法分析
Sep 21 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
python操作cfg配置文件方式
Dec 22 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
Python 列表反转显示的四种方法
Nov 16 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 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入门教程之面向对象基本概念实例分析
2016/09/11 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python的UTC时间转换讲解
2019/02/26 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
给老师的一封建议书
2014/03/13 职场文书
留学推荐信范文
2014/05/10 职场文书
英语教师个人总结
2015/02/09 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA