详解python破解zip文件密码的方法

 更新时间:2020年01月13日 09:48:29   作者:阿优乐扬  
这篇文章主要介绍了python破解zip文件密码的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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()

破解结果:

在这里插入图片描述

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()

破解结果:

在这里插入图片描述

提示: 多线程对数字型的运算没有多大帮助

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错误与异常处理

     Python错误与异常处理

    这篇文章主要介绍了 Python错误与异常处理,错误与异常处理在Python中具有非常重要的地位,熟练的使用错误与异常处理能够为我们的Python编程提供很多的便利之处,希望您阅读完本文后能够有所收获
    2022-01-01
  • python开发微信服务号消息推送示例

    python开发微信服务号消息推送示例

    这篇文章主要为大家介绍了python开发微信服务号消息推送示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • python xpath获取页面注释的方法

    python xpath获取页面注释的方法

    今天小编就为大家分享一篇python xpath获取页面注释的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python实现三种字符串格式化方法(%、format、f-string)

    python实现三种字符串格式化方法(%、format、f-string)

    本文主要介绍了python实现三种字符串格式化方法,主要包括%、format、f-string,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Python cookbook(数据结构与算法)实现优先级队列的方法示例

    Python cookbook(数据结构与算法)实现优先级队列的方法示例

    这篇文章主要介绍了Python cookbook(数据结构与算法)实现优先级队列的方法,结合实例形式分析了Python中基于给定优先级进行队列元素排序的相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • 在python3中pyqt5和mayavi不兼容问题的解决方法

    在python3中pyqt5和mayavi不兼容问题的解决方法

    今天小编就为大家分享一篇在python3中pyqt5和mayavi不兼容问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python多版本工具miniconda的配置优化实现

    python多版本工具miniconda的配置优化实现

    通过Miniconda,您可以轻松地创建和管理多个Python环境,同时确保每个环境具有所需的依赖项和软件包,本文主要介绍了python多版本工具miniconda的配置优化实现,感兴趣的可以了解一下
    2024-01-01
  • Python中列表和字符串常用的数据去重方法总结

    Python中列表和字符串常用的数据去重方法总结

    关于数据去重,咱们这里简单理解下,就是删除掉重复的数据,应用的场景比如某些产品产生的大数据,有很多重复的数据,为了不影响分析结果,我们可能需要对这些数据进行去重,所以本文给大家总结了Python中列表和字符串常用的数据去重方法,需要的朋友可以参考下
    2023-11-11
  • python代码有一行标黄问题的解决方案

    python代码有一行标黄问题的解决方案

    这篇文章主要介绍了python代码有一行标黄问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Keras在训练期间可视化训练误差和测试误差实例

    Keras在训练期间可视化训练误差和测试误差实例

    这篇文章主要介绍了Keras在训练期间可视化训练误差和测试误差实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06

最新评论