Python实现暴力破解有密码的zip文件的方法

苏见山
苏见山
发布时间:2026-10-15 | 2人浏览过
原创

本文介绍使用Python破解加密ZIP文件的完整流程。核心思路为生成密码字典并循环尝试解压。通过itertools.product构建字符组合生成器以优化内存,结合zipfile模块进行解压测试。文章提供了从字典生成、单文件解压到完整爆破脚本的代码示例及运行结果分析。

背景

今日收到朋友发送的一个游戏兑换码压缩文件,但该文件已被加密保护。对方甚至提出“叫爸爸”才给密码的玩笑要求。面对这种挑衅,决定直接进行暴力破解。

一、思路

暴力破解密码的基本逻辑一致:利用字典进行爆破。关键在于是使用现成的密码字典,还是自行生成字典,随后通过循环输入密码直至成功解压。尽管许多现代系统设有防爆破机制,但ZIP文件通常密码较简单且无此类限制。因此,实现路径为:生成字典 -> 尝试输入密码 -> 成功解压。

二、实现过程

1.生成字典 生成密码字典本质上是字符的组合过程。建议使用生成器而非列表,以避免内存溢出风险。此处选用Python的itertools模块,该模块自2.3版本起提供创建循环迭代器的函数。其中,itertools.product(*iterables[, repeat])函数用于执行有序的重复抽样过程。 以下是生成密码字典的方法示例(输出由1和2组成的所有长度为4的密码组合):


import itertools

def allkeyword(dic,num):
  allkey1 = itertools.product(dic,repeat=num)
  allkey2 = (''.join(i) for i in allkey1)
  return allkey2

dictionaries = ['1', '2']
print(list(allkeyword(dictionaries,4)))

输出结果:

2.解压文件 Python内置的zipfile模块即可实现文件的压缩与解压,具体用法可参考官方文档:https://docs.python.org/zh-cn/2/library/zipfile.html


import zipfile

try:
  ZIPFILE = zipfile.ZipFile(r'D:\123\1.zip')
  ZIPFILE.extractall(path=r'D:\12',pwd=b'1234')
  print("解压成功")

except:
  print("解压失败")

若无意外,测试文件应能成功解压。

3.使用生成的字典去爆破密码 结合上述第1、2步进行修改,直接提供完整代码:


import zipfile
import itertools


dictionaries = ['1', '2', '3', '4','5','6','7','8','9','0',
        'a','b','c','d','e','f','g','h','i','j','k',
        'l','m','n','o','p','q','r','s','t','u','v',
        'w','x','y','z']     #组成破解字典的关键字符(可以按照自己需求添加)


def allkeyword():      #排列出字符所有4个字符的组合
  allkey1 = itertools.product(dictionaries,repeat=4)
  allkey2 = (''.join(i) for i in allkey1)
  return allkey2


def trypassword (password):
  try:
    ZIPFILE = zipfile.ZipFile(r'D:\123\1.zip')  #定义对象,相当于定义一个压缩文件1.zip
    ZIPFILE.extractall(path=r'D:\12',pwd=password.encode('utf-8')) 
    print(f"解压成功,正确密码为:{password}")
    return True
  except:
    print(f"解压失败,尝试密码为:{password}")
    return False

#用trypassword函数返回的True或者Flase来判定程序是否终止。
for pwd in allkeyword() :  
  if trypassword(pwd):
    break

爆破测试的压缩文件:

三、结束

至此,该程序运行结束。

本文关于Python实现暴力破解有密码zip文件的介绍到此结束。更多相关内容可搜索本站历史文章或继续浏览后续文章,感谢支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表