详解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使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
给Python入门者的一些编程建议
Jun 15 Python
SQLite3中文编码 Python的实现
Jan 11 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
Linux下Python安装完成后使用pip命令的详细教程
Nov 22 Python
Python多进程fork()函数详解
Feb 22 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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中实现记住密码自动登录的代码
2011/03/02 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python 自动补全(vim)
2014/11/30 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Django框架模板的使用方法示例
2019/05/25 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
大学生个人年度总结范文
2015/02/15 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
redis数据结构之压缩列表
2022/03/21 Redis
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技