详解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 21 Python
基于python log取对数详解
Jun 08 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
Python实现端口检测的方法
Jul 24 Python
Python Socket编程之多线程聊天室
Jul 28 Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
python的等深分箱实例
Nov 22 Python
Pytorch to(device)用法
Jan 08 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
python中的测试框架
Nov 13 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 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面试题附答案
2009/01/07 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP反向代理类代码
2014/08/15 PHP
php递归json类实例
2014/12/02 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
Python自动创建Excel并获取内容
2020/09/16 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
国家助学金获奖感言
2014/01/31 职场文书
优秀党员获奖感言
2014/02/18 职场文书
社团活动总结范文
2014/04/26 职场文书
绿色出行口号
2014/06/18 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技