我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

利用破解 ZIP 或 RAR 文件密码的方法

一些带有密码的压缩包常常是从网上下载的。如果您想获取内容,通常需要向提供商支付一些费用。如果你想免费获得内容,常见的方法是在百度上搜索一些压缩包密码破解软件,但相信经历过的人都知道后果。本文将使用密码破解压缩包,以ZIP/RAR为例。

本文下方留言“获取压缩包”并发送私信即可获取本文源码。

破解原理

其实原理很简单。用一句话概括就是“只要努力就能创造奇迹”。有两个压缩文件库: 和 。这两个库提供的解压方法()可以指定密码。在这种情况下,首先生成一个密码字典(手动或通过程序),然后按顺序尝试其中的密码。如果能正常解压,说明密码正确。

实验环境

本文使用的虚拟环境是。

库利用安装

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.')
    return
for pwd in fpPwd:
    pwd = pwd.rstrip()
    try:
        fp.extractall(path=desPath, pwd=pwd.encode())
        print('Success! ====>'+pwd)
        fp.close()
        break
    except:
        pass
fpPwd.close()

节目入口

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

使用

如果我们想使用上面的代码,只需要在命令行执行main.py即可。例如 main.py test.zip

运行结果:

$ python main.py test.zip
Success! ====>323126

如何获取扩展码本?

看到这里,细心的朋友一定会发现,核心的东西并不是代码,而是“码书”。理论上,只要密码本中有足够的密码,就可以获取压缩包的密码。这通常也称为“撞库”**。

如何加快破解过程?

解决了码书的问题后,深入思考的朋友肯定会有新的疑问。既然密码本如此巨大,如何加快破解过程呢?这里有两个想法

多线程(进程)破解

如果密码本很多,密码数量巨大,我们可以使用多线程(进程)来读取密码。一个进程读取一本密码本,一个线程分段读取密码。当然,如果你正在使用的话,建议不要使用多线程,因为里面的线程是没有用的。如果您有兴趣,可以阅读相关资料。

利用 GPU 加速

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

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

那么为什么会想到使用 GPU 加速呢?这就是关于两者的区别:CPU虽然有多个核心,但总数不超过两位数,而且每个核心的计算能力都极其强大。 GPU的核心数量远远超过CPU,但每个核心的计算能力却与CPU相差甚远。

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

因此,理论上,在破解密码的过程中,我们可以利用GPU来加速这一过程。

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

二维码
扫一扫在手机端查看

    Tags : python
本文链接:https://by928.com/7456.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线