详解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使用递归解决全排列数字示例
Feb 11 Python
Python实现遍历数据库并获取key的值
May 17 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
Python单例模式的两种实现方法
Aug 14 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
python3处理含有中文的url方法
May 10 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 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采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
JS获取父节点方法
2009/08/20 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
django2 快速安装指南分享
2018/01/05 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
python默认参数调用方法解析
2020/02/09 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
益模软件Java笔试题
2012/03/27 面试题
什么是Smart Navigation?
2016/07/03 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
AJAX学习笔记
2021/05/18 Javascript
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python