详解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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
基于DataFrame改变列类型的方法
Jul 25 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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实现递归循环每一个目录
2010/08/08 PHP
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
js实现数字滚动特效
2019/12/16 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
python音频处理的示例详解
2020/12/23 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
社区七一党员活动方案
2014/01/25 职场文书
初三学生个人自我评定
2014/04/06 职场文书
毕业设计说明书
2014/05/07 职场文书
求职信怎么写
2014/05/23 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
学子宴致辞大全
2015/07/27 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python