利用 Python 破解 ZIP 或 RAR 文件密码

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

pipenv install rarfile

在网络上下载带密码的压缩包是常见的情况,为了获取其中的内容,通常需要支付费用给提供商。为了免费获取这些内容,人们常常会使用百度搜索压缩包密码破解软件,但是很多人都知道这样做的后果。本文将介绍如何使用Python来破解压缩包的密码,以ZIP/RAR为例。

本文的源码可以在微信公众号「01 二进制」的后台留言「破解压缩包」获取。

破解的原理其实很简单,用一句话概括就是「大力出奇迹」。Python有两个压缩文件库:zipfile和rarfile。这两个库提供了extractall()方法来解压缩文件,并且可以指定密码。因此,我们可以先生成一个密码字典(手动或使用程序),然后逐个尝试这些密码,如果能够成功解压缩,就表示密码正确。

在本文中,我们使用Pipenv作为虚拟环境,关于Pipenv的详细介绍可以参考我的文章《Python管理哪家强?》。我们还需要使用rarfile库,可以使用Pipenv来安装。

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

知道了原理之后,编写代码就变得非常简单了。

首先,准备一个密码本。密码本其实就是一个包含了所有可能密码的文件,可以手动录入,也可以使用程序录入。文末还会有一个介绍。

然后,读取压缩文件并尝试解压缩。首先尝试不使用密码解压缩,如果成功,则表示压缩文件没有密码。

如果没有成功,我们就需要进行暴力破解。程序的入口是使用main.py文件。如果想要使用上述代码,只需在命令行中执行”python main.py”,并指定压缩包的文件名,例如”python main.py test.zip”。

运行结果如下:

hashcat怎么解压缩包密码

如何扩展密码本呢?细心的读者可能会发现,最关键的不是代码,而是密码本。理论上,只要密码本中的密码足够多,就一定能够获取到压缩包的密码,这也是所谓的「撞库」。

那么如何收集足够多的密码呢?在我的搜索中,我发现已经有人整理好了密码本,我将其fork到了自己的仓库中,有兴趣的人可以点击「爆破字典」进行查看。

如何加速破解过程呢?解决了密码本的问题后,深入思考的读者可能会有新的疑问,密码本非常庞大,如何加速破解过程呢?这里给出两个思路。

一种是使用多线程(进程)进行破解。当密码本非常庞大且密码数量众多时,我们可以采用多线程(进程)的方式来读取密码,一个进程读取一个密码本,一个线程分段读取密码。然而,在Python中,不建议使用多线程,因为Python中的线程并不是很强大。有兴趣的读者可以阅读相关资料了解更多。

另一种思路是利用GPU加速。我们之前的代码都是在CPU上运行的,即使开启了多线程(进程),也只是利用了CPU的资源。但是,如果想要加速破解过程,我们可以利用闲置的GPU资源。

在介绍为什么可以利用GPU加速之前,我们需要明确一个观点,即CPU和GPU都是为了完成计算任务而设计的。那么为什么会想到使用GPU加速呢?这就要说到两者的不同了:CPU虽然有多个核心,但总数没有超过两位数,并且每个核心的运算能力非常强大。而GPU的核心数远远超过CPU,但每个核心的运算能力与CPU的核心相比要差很多。

我们可以举个简单的例子来说明,解一道题,CPU就像是博士生,负责理解题目并整理出解题步骤和解法,而GPU就像是小学生,负责大量但简单的运算。

因此,在破解密码的过程中,理论上我们完全可以利用GPU来加速。实际上,已经有一些工具出现了,其中最著名的就是Hashcat。Hashcat号称是世界上最快的密码恢复工具,可以基于CPU/GPU等进行工作。有兴趣的读者可以访问他的官网hashcat.net/hashcat/了解更多信息。

赞(0)