详解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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
PyCharm 专业版安装图文教程
Feb 20 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Python使用Excel将数据写入多个sheet
May 16 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
Zend的Registry机制的使用说明
2013/05/02 PHP
php时间计算相关问题小结
2016/05/09 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
详解Python中的文件操作
2016/08/28 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python之list对应元素求和的方法
2018/06/28 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
自我鉴定范文300字
2013/10/01 职场文书
出国留学计划书
2014/04/27 职场文书
农村文化建设标语
2014/10/07 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
鸡毛信观后感
2015/06/11 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
导游词之山海关
2019/12/10 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python