详解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 初始化多维数组代码
Sep 06 Python
从零学Python之入门(五)缩进和选择
May 27 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
python getopt详解及简单实例
Dec 30 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
python实现k-means聚类算法
Feb 23 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python 实现敏感词过滤的方法
Jan 21 Python
Django异步任务之Celery的基本使用
Mar 23 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 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分页显示制作详细讲解
2006/12/05 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
Discuz 模板引擎的封装类代码
2008/07/18 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
PHP进程同步代码实例
2015/02/12 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
Python之文字转图片方法
2018/05/10 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
柏林通行证:Berlin Pass
2018/04/11 全球购物
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
介绍一下grep命令的使用
2012/06/28 面试题
超市营业员岗位职责
2013/12/20 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
搞笑车尾标语
2014/06/23 职场文书
党员批评与自我批评范文
2014/09/23 职场文书