使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程

目录

  • 使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程
  • 一、摘要
  • 二、 使用zipfile包暴力破解ZIP、7Z格式压缩包密码
  • 三、 使用unrar包暴力破解RAR格式压缩包密码
  • 四、参考资料

一、摘要

本文展现了使用python代码暴力破解ZIP、7Z 、RAR格式压缩包密码的方法,其中破解ZIP、7Z格式压缩包密码使用了zipfile包,破解RAR格式压缩包密码使用了unrar包。其中zipfile为python内置包无需安装;unrar为第三方包,需要使用pip安装并修改系统环境变量,详情查看文末参考资料。此外,使用本文的暴力破解方法的前提是已知密码的位数以及构成,例如,已经知道密码是六位数且已经知道密码由数字和字母构成,否则无法使用本文展现的方法暴力破解压缩包密码。本文使用了多线程进行加速破解,此外,还可以使用GPU加速。

二、 使用zipfile包暴力破解ZIP、7Z格式压缩包密码

import zipfile
import itertools
from concurrent.futures import ThreadPoolExecutor
import queue
def extract(file, password):if not flag: returnfile.extractall(path='.', pwd=''.join(password).encode('utf-8'))
 def result(f):exception = f.exception()if not exception:# 如果获取不到异常说明破解成功print('密码为:', f.pwd)global flagflag = False
class BoundedThreadPoolExecutor(ThreadPoolExecutor):def __init__(self, max_workers=None, thread_name_prefix=''):super().__init__(max_workers, thread_name_prefix)self._work_queue = queue.Queue(self._max_workers * 2) # 设置队列大小
# 20220619-1956
flag = True
# 创建一个线程池
pool = ThreadPoolExecutor(100)#密码构成,字母或数字;若含有其他符号,则需修改
nums = [str(i) for i in range(10)]
chrs = [chr(i) for i in range(65, 91)]# 生成数字+字母的6位数密码
password_lst = itertools.permutations(nums + chrs, 6)#此处数字6可换为其他所知道的密码位数# 创建文件句柄
zfile = zipfile.ZipFile("test.zip", 'r')# 此处压缩包名称可换,格式可为zip或7z格式,不可为rar格式,其他格式未测试
for pwd in password_lst:if not flag: breakf = pool.submit(extract, zfile, pwd)f.pwd = pwdf.pool = poolf.add_done_callback(result)

结果示意图:

三、 使用unrar包暴力破解RAR格式压缩包密码

from unrar import rarfile
import itertools
from concurrent.futures import ThreadPoolExecutor
import queue
def extract(file, password):if not flag: return# file.extractall(path='.', pwd=''.join(password).encode('utf-8'))file.extractall(path='.', pwd=''.join(password)) # 加.encode('utf-8')会报错
def result(f):exception = f.exception()if not exception:# 如果获取不到异常说明破解成功print('密码为:', f.pwd)global flagflag = False
class BoundedThreadPoolExecutor(ThreadPoolExecutor):def __init__(self, max_workers=None, thread_name_prefix=''):super().__init__(max_workers, thread_name_prefix)self._work_queue = queue.Queue(self._max_workers * 2) # 设置队列大小# self._work_queue = queue.Queue(self._max_workers )
flag = True
#创建一个线程池
pool = ThreadPoolExecutor(100)
nums = [str(i) for i in range(10)]
chrs = [chr(i) for i in range(65, 91)]#生成数字+字母的6位数密码
password_lst = itertools.permutations(nums + chrs, 6)#创建文件句柄
rarfile = rarfile.RarFile('test_012345.rar')
for pwd in password_lst:if not flag: breakf = pool.submit(extract, rarfile, pwd)f.pwd = pwdf.pool = poolf.add_done_callback(result)

结果示意图

四、参考资料

链接: https://blog.csdn.net/DragonL915/article/details/124418866
链接: https://blog.csdn.net/aaahtml/article/details/117249121
链接: https://blog.csdn.net/Lilygjy/article/details/118514265

使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程相关推荐

  1. Python 暴力破解zip文件密码(相对简单的密码)

               Python 暴力破解zip文件密码(相对简单的密码) 密码的使用范围很广,首先,我们要明确密码的作用,其次要明白密码的类型. 密码的作用是进行权限的限制,判断用户的合法性,(不 ...

  2. python暴力破解压缩包密码(python暴力破解zip压缩包)

    python暴力破解压缩包密码 简介 简介: ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料.ZI ...

  3. python暴力破解Zip文件,就是不讲道理

    本次实验将带领大家用Python的zipfile模块实现Zip文件的暴力破解,涉及的知识点包括:zipfile.argparse的用法等等. 一.实验说明 1. 实验简介 我们在网上好不容易下载到一个 ...

  4. python 暴力破解zip文件

    基本原理: 暴力破解(一)--python脚本暴力破解 加密的zip压缩文件简介:zip格式是常见的压缩文件格式,它支持压缩时设置解压密码:有两种加密方式:1传统加密方式和普通的加密方式.传统加密方式 ...

  5. python暴力破解zip加密文件

    目录 前言: 一.破解zip加密文件的思路: 1.准备一个加密的zip文件. 2.zipfile模块可以解压zip文件. 3.itertools.permutations实现全字符的全排列. 二.实操 ...

  6. 使用python暴力破解zip压缩包的密码

    如果你有压缩包的密码忘记了,并且压缩包的加密算法采用的是ZipCrypto,并且压缩参数如下图所示: 那么你就可以使用本文中的方法进行破解. 压缩包的加密,是根据输入的密码进行运算加密,输入不同的密码 ...

  7. Python暴力破解zip文件

    具体解决问题: 下载的zip文件被加锁,密码未包含特殊字符.假设密码是4-8位. 解决方案: 先设定可能出现的字符,存放在一个字符串中.用参数代表密码的长度,然后循环遍历的模式遍历所有可能性. 具体代 ...

  8. 【脚本工具】Python暴力破解ZIP文件

    # -*-coding:utf-8-*- import itertools import time import zipfilefilepath = "文件路径" uncompre ...

  9. python暴力破解zip密码文件

    原理非常简单,不说了直接上代码 update:说一些注意点,python3.x 下的string不支持bytes编码方式,而python2.x下是支持的.encode(),和decode()方法就是进 ...

  10. Python攻防-暴力破解ZIP加密文件的密码

    文章目录 前言 Python语法 自定义迭代器 Python多线程 Python脚本 单线程数字爆破 单线程字符爆破 多线程字典爆破 总结 前言 本文继续记录学习下 Python 的有趣应用:借助 P ...

最新文章

  1. 2008开年大礼:《Application = Code + Markup》中文版面世
  2. Java 11正式发布,新特性解读
  3. 持续交付流水线的敏捷利器:环境配置管理与应用部署自动化
  4. ADO.net 中数据库连接方式
  5. 面试lua笔试题各种坑
  6. 推送ActivityFeed到Teams
  7. 洛谷 P2921 在农场万圣节Trick or Treat on the Farm题解
  8. kindeditor编辑器
  9. 隐马尔科夫-维特比算法
  10. C语言国二上机题库,【高分飘过】2013年国二C语言上机题库(必备完美版).doc
  11. 海康web3.0使用记录
  12. 数据结构_树状数组 详解
  13. 持久续航蓝牙耳机推荐,即使音质再好电量不足又有什么用?
  14. sqlserver远程连接mysql_sqlserver2005远程连接 mysql
  15. 如何用快慢指针在链表找到中间点
  16. AMD皓龙系列服务器CPU,霄龙PK皓龙!AMD CPU 10年历史对比:一步登天
  17. 深入理解Java注解(二)——JavaPoet使用
  18. 【Unity游戏开发笔记】手游-涂鸦弹跳开发分析
  19. pytest.ini配置文件详解【pytest系列 12】
  20. 计算机底层知识——二进制之间的加减乘除运算

热门文章

  1. MacBook Air如何清理缓存
  2. 后台管理系统——02首页布局
  3. DirectX11参考资料之美
  4. Scrapy添加headers
  5. 什么是表压?什么是绝压?表压和绝压什么关系?
  6. c#.net开发金融行情分析软件k线图蜡烛图之布林线指标计算
  7. CSS3nbsp;Transitionnbsp;Transformnbsp;Animat…
  8. GBASE 8s 用户标示与鉴别
  9. 【干货】从QQ群起家的情趣商城站长之路
  10. dB、dBm、dBw、dBμV、dBmV、dBV、dBv等单位介绍