使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程
使用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格式压缩包密码教程相关推荐
- Python 暴力破解zip文件密码(相对简单的密码)
Python 暴力破解zip文件密码(相对简单的密码) 密码的使用范围很广,首先,我们要明确密码的作用,其次要明白密码的类型. 密码的作用是进行权限的限制,判断用户的合法性,(不 ...
- python暴力破解压缩包密码(python暴力破解zip压缩包)
python暴力破解压缩包密码 简介 简介: ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料.ZI ...
- python暴力破解Zip文件,就是不讲道理
本次实验将带领大家用Python的zipfile模块实现Zip文件的暴力破解,涉及的知识点包括:zipfile.argparse的用法等等. 一.实验说明 1. 实验简介 我们在网上好不容易下载到一个 ...
- python 暴力破解zip文件
基本原理: 暴力破解(一)--python脚本暴力破解 加密的zip压缩文件简介:zip格式是常见的压缩文件格式,它支持压缩时设置解压密码:有两种加密方式:1传统加密方式和普通的加密方式.传统加密方式 ...
- python暴力破解zip加密文件
目录 前言: 一.破解zip加密文件的思路: 1.准备一个加密的zip文件. 2.zipfile模块可以解压zip文件. 3.itertools.permutations实现全字符的全排列. 二.实操 ...
- 使用python暴力破解zip压缩包的密码
如果你有压缩包的密码忘记了,并且压缩包的加密算法采用的是ZipCrypto,并且压缩参数如下图所示: 那么你就可以使用本文中的方法进行破解. 压缩包的加密,是根据输入的密码进行运算加密,输入不同的密码 ...
- Python暴力破解zip文件
具体解决问题: 下载的zip文件被加锁,密码未包含特殊字符.假设密码是4-8位. 解决方案: 先设定可能出现的字符,存放在一个字符串中.用参数代表密码的长度,然后循环遍历的模式遍历所有可能性. 具体代 ...
- 【脚本工具】Python暴力破解ZIP文件
# -*-coding:utf-8-*- import itertools import time import zipfilefilepath = "文件路径" uncompre ...
- python暴力破解zip密码文件
原理非常简单,不说了直接上代码 update:说一些注意点,python3.x 下的string不支持bytes编码方式,而python2.x下是支持的.encode(),和decode()方法就是进 ...
- Python攻防-暴力破解ZIP加密文件的密码
文章目录 前言 Python语法 自定义迭代器 Python多线程 Python脚本 单线程数字爆破 单线程字符爆破 多线程字典爆破 总结 前言 本文继续记录学习下 Python 的有趣应用:借助 P ...
最新文章
- 2008开年大礼:《Application = Code + Markup》中文版面世
- Java 11正式发布,新特性解读
- 持续交付流水线的敏捷利器:环境配置管理与应用部署自动化
- ADO.net 中数据库连接方式
- 面试lua笔试题各种坑
- 推送ActivityFeed到Teams
- 洛谷 P2921 在农场万圣节Trick or Treat on the Farm题解
- kindeditor编辑器
- 隐马尔科夫-维特比算法
- C语言国二上机题库,【高分飘过】2013年国二C语言上机题库(必备完美版).doc
- 海康web3.0使用记录
- 数据结构_树状数组 详解
- 持久续航蓝牙耳机推荐,即使音质再好电量不足又有什么用?
- sqlserver远程连接mysql_sqlserver2005远程连接 mysql
- 如何用快慢指针在链表找到中间点
- AMD皓龙系列服务器CPU,霄龙PK皓龙!AMD CPU 10年历史对比:一步登天
- 深入理解Java注解(二)——JavaPoet使用
- 【Unity游戏开发笔记】手游-涂鸦弹跳开发分析
- pytest.ini配置文件详解【pytest系列 12】
- 计算机底层知识——二进制之间的加减乘除运算