rar密码忘记了怎么解除 rar加密压缩包破解方法

一、破解原理其实原理很简单。一句话,就是“励精图治,创造奇迹”。Python有两个压缩文件库:zipfile和rarfile。这两个库提供的提取方法extractall()可以指定密码。这样先生成一个密码字典(手动或程序),然后依次尝试里面的密码。如果能正常提取,则密码正确。二、实验环境本...

一、破解原理

其实原理很简单。一句话,就是“励精图治,创造奇迹”。Python有两个压缩文件库:zipfile和rarfile。这两个库提供的提取方法extractall()可以指定密码。这样先生成一个密码字典(手动或程序),然后依次尝试里面的密码。如果能正常提取,则密码正确。

二、实验环境

本文采用的虚拟环境是Pipenv。

zipfile:Python 标准库,使用时直接导入即可rarfile:Python 第三方库

使用Pipenv安装rarfile

pipenv install rarfile

最后,将一个带有密码的压缩包放入实验环境中。

三。编码

知道原理后,编码会很简单。

准备密码本

“密码本”实际上是一个包含所有可能密码的文件,用户可以手动或通过程序输入。文末会有介绍。

读取压缩文件

# 根据文件扩展名,使用不同的库if filename.endswith('.zip'): fp = zipfile.ZipFile(filename)elif filename.endswith('.rar'): fp = rarfile.RarFile(filename)

尝试解压缩

先尝试无密码解压。如果成功,压缩文件没有密码。

fp.extractall(desPath)fp.close()print('No password')return

暴力破解

try: # 读取密码本文件 fpPwd = open('pwd.txt')except: print('No dict file pwd.txt in current directory.') returnfor pwd in fpPwd: pwd = pwd.rstrip() try: fp.extractall(path=desPath, pwd=pwd.encode()) print('Success! ====>'+pwd) fp.close() break except: passfpPwd.close()


节目条目

if __name__ == '__***in__': filename = sys.argv[1] if os.path.isfile(filename) and filename.endswith(('.zip', '.rar')): decryptRarZipFile(filename) else: print('Must be Rar or Zip file')

四。使用

如果我们想使用上面的代码,我们只需要执行python ***in.py<>

运行结果:

$ python ***in . py test . zip
成功!= = = = = >323126

动词 (verb的缩写)膨胀

密码本怎么拿?

https://github.com/YueYongDev/Blasting_dictionary

如何加快破解速度?

解决了密码本的问题,深入思考的朋友一定会有新的疑问。既然密码本这么庞大,怎么才能加快破解速度呢?这里有两个想法。

多线程(进程)破解

如果密码多,数量大,可以多线程(进程)读取密码,一个进程读取一个密码本,一个线程分段读取密码。当然,如果是在python中,建议不要采用多线程,因为python中的线程都是鸡肋。有兴趣的可以看相关资料。

import zipfileimport itertoolsfrom concurrent.futures import ThreadPoolExecutordef extract(file, password): if not flag: return file.extractall(path='.', pwd=''.join(password).encode('utf-8'))def result(f): exception = f.exception() if not exception: # 如果获取不到异常说明破解成功 print('密码为:', f.pwd) global flag flag = Falseif __name__ == '__***in__': # 创建一个标志用于判断密码是否破解成功 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) # 创建文件句柄 zfile = zipfile.ZipFile("加密文件.zip", 'r') for pwd in password_lst: if not flag: break f = pool.submit(extract, zfile, pwd) f.pwd = pwd f.pool = pool f.add_done_callback(result)

这段代码有问题。跑了一段时间内存就爆了!原因:ThreadPoolExecutor默认使用***队列,尝试密码的速度跟不上生产密码的速度,会无限期地向队列中添加生产任务。导致内存满。记忆飙升至95:

然后程序崩溃了:

import queue from concurrent . futures导入ThreadPoolExecutor class BoundedThreadPoolExecutor(ThreadPoolExecutor):def _ _ init _ _(self,***x_workers=None,Thread _ name _ prefix =''): super()。_ _ init _ _ (***x _ workers,thread _ name _ prefix) self。_ work _ queue = queue.queue (self。_ ***x _ workers * 2) #设置队列大小使用GPU加速

以上代码都是在CPU上运行的,即使启动了多线程(进程),我们也只是使用了CPU的资源。但是,如果我们想要加快破解过程,我们实际上可以使用闲置的GPU资源。

在介绍为什么GPU可以用于加速之前,我们需要明确一点。两者都是为了完成计算任务而设计的。

那为什么会想到用GPU加速呢?这大概就是两者的区别:CPU虽然有多个核心,但总数不超过两位数,每个核心的计算能力都极强。GPU的核数远超CPU,但每个核的计算能力却远不及CPU。

我们可以举一个简单的例子来解决问题。CPU是博士生,GPU是小学生。CPU负责理解问题,整理问题的步骤和解决方法,GPU负责简单但大量的简单运算。

所以理论上,在破解密码的过程中,我们可以使用GPU来加快这个过程。

其实这样的工具已经出现了,Hashcat就是最著名的一个。它号称是世界上最快的密码恢复工具,可以基于CPU/GPU等工作。

算了吧。

所以理论上,在破解密码的过程中,我们可以使用GPU来加快这个过程。

其实这样的工具已经出现了,Hashcat就是最著名的一个。它号称是世界上最快的密码恢复工具,可以基于CPU/GPU等工作。

本文来自我要无比强大投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/487441.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 04-03
下一篇 04-03

相关推荐

  • 手机怎么压缩rar文件 压缩文件rar和zip的区别

    像压缩文件一样,RAR文件可以用密码保护。如果您的电脑上有受密码保护的RAR文件,您可能忘记了密码。在本教程中,如果你没有密码,我们将学习如何提取密码保护的RAR文件。在我们开始之前,让我告诉你,这项技术不能保证恢复RAR文件密码,但这是你最好的机会。三个最好的RAR密

    2023-07-25 01:37:02
    318 0
  • mac如何解压rar文件 一键轻松解压rar文件

    Mac压缩文件的时候是比较耗时的,而且传统意义上的文件压缩和解压都需要拖拽。但是,MyZip可以通过选择文件和右键菜单进行压缩和解压缩。支持7Z、ZIP、RAR、TAR、GZIP、BZIP2、XZ、LZIP、ACE、ISO、CAB、PAX、JAR、AR、CPIO等常用格式解压。首先,眼前一亮的设计风格MyZip完全

    2023-07-12 17:08:01
    759 0
  • rar怎么转换成zip格式 rar转换成zip格式的方法

    winrar官方免费版是一款功能强大的解压软件。众所周知,这种类型的软件有很多,但边肖在这里带来的WinRAR绝对是最受欢迎和最受欢迎的软件,也是Windows环境下存档工具RAR的图形界面。该软件可用于备份数据,减少电子邮件附件的大小,解压缩从互联网上下载的RAR、ZIP和其他类型

    2023-07-12 02:22:01
    661 0
  • win rar软件的作用 安卓rar解压工具使用

    1月10日,解压工具推出WinRAR版Beta 1。本次更新之前的版本有时可能会出现压缩文件比用户要求的rar5文件略小的问题,部分bug已经修复。WinRAR 5.21 beta1更新日志:1.用右键菜单拖放文件后,“拖放右键菜单”中的“设置/集成/右键菜单项”对话框允许禁用WinRAR存档和提取命令。

    2023-06-27 20:38:01
    527 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信