详解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 28 Python
Python中list初始化方法示例
Sep 18 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
python调用接口的4种方式代码实例
Nov 19 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 Python
Python OpenGL基本配置方式
May 20 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/11/25 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
Javascript 继承实现例子
2009/08/12 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
js实现日期级联效果
2014/01/23 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
[00:11]战神迅矛
2019/03/06 DOTA
python实现学生管理系统
2018/01/11 Python
PyQt5实现拖放功能
2018/04/25 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
自荐信封面
2013/12/04 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
停水通知
2015/04/16 职场文书
音乐剧猫观后感
2015/06/04 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android