详解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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python求素数示例分享
Feb 16 Python
Python实现获取网站PR及百度权重
Jan 21 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python3中set(集合)的语法总结分享
Mar 24 Python
python3模块smtplib实现发送邮件功能
May 22 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python同步遍历多个列表的示例
Feb 19 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python基础知识学习之类的继承
May 31 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHP生成静态页面详解
2006/11/19 PHP
php array的学习笔记
2012/05/16 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php简单生成随机数的方法
2015/07/30 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python中的类学习笔记
2014/09/23 Python
Python入门篇之数字
2014/10/20 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
Python中按键来获取指定的值
2019/03/02 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
园林专业毕业生自荐信
2014/07/04 职场文书
美丽人生观后感
2015/06/03 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python