详解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的Django框架下使用django-tagging的教程
May 30 Python
django批量导入xml数据
Oct 16 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python错误处理操作示例
Jul 18 Python
对python中的argv和argc使用详解
Dec 15 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
python 爬取B站原视频的实例代码
Sep 09 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
理解深度学习之深度学习简介
Apr 14 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 Python
python基础之函数的定义和调用
Oct 24 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生成zip压缩文件的方法详解
2013/06/09 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
详解用python写一个抽奖程序
2019/05/10 Python
Django的性能优化实现解析
2019/07/30 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
Python实现验证码识别
2020/06/15 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
道路交通安全实施方案
2014/03/12 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
python 中[0]*2与0*2的区别说明
2021/05/10 Python
使用JS实现简易计算器
2021/06/14 Javascript
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL