详解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处理csv数据的方法
Mar 11 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
python re模块findall()函数实例解析
Jan 19 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
python使用thrift教程的方法示例
Mar 21 Python
详解python 爬取12306验证码
May 10 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Django操作session 的方法
Mar 09 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
pandas求平均数和中位数的方法实例
Aug 04 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
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
Cookie 小记
2010/04/01 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
Vue 中mixin 的用法详解
2018/04/23 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
Python面向对象进阶学习
2019/05/21 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
寒假思想汇报
2014/01/10 职场文书
职业女性的职业规划
2014/03/04 职场文书
主持人演讲稿
2014/05/13 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
考研复习计划
2015/01/19 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
借条如何写
2015/05/26 职场文书
借钱欠条怎么写
2015/07/03 职场文书
利用python做表格数据处理
2021/04/13 Python
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL