如何使用Python破解ZIP或RAR文件密码

caocao2年前教程412

如何使用Python破解ZIP或RAR文件密码

本篇内容主要讲解如何使用Python破解ZIP或RAR文件密码,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让我来带大家学习如何使用Python破解ZIP或RAR文件密码吧!

一、破解原理

其实原理很简单,一句话概括就是「大力出奇迹」,Python有两个压缩文件库:zipfile和rarfile,这两个库提供的解压缩方法extractall()可以指定密码,这样的话首先生成一个密码字典(手动或用程序),然后依次尝试其中的密码,如果能够正常解压缩表示密码正确。

二、实验环境

本文采取的虚拟环境为Pipenv。库利用Pipenv安装rarfile。

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

三、编码

知道原理后,编码就会非常简单了。

准备密码本

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

读取压缩文件

尝试解压,先尝试不用密码解压缩,如果成功则表示压缩文件没有密码。

暴力破解

程序入口。

四、使用

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

运行结果:

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

五、扩展

密码本如何获取?

看到这里,细心的小伙伴一定会发现,最核心的其实不是代码,而是「密码本」。理论上只要密码本中的密码足够多,就一定能获取到压缩包的密码,这也就是俗称的「撞库」

如何加速破解过程?

解决了密码本的问题,深入思考的小伙伴的一定又会有新的疑问,密码本既然如此庞大,那如何加速破解的过程呢?这里给出两个思路。

  1. 多线程(进程)破解:密码本如果很多且密码数量庞大时,我们可以采用多线程(进程)的方式读取密码,一个进程读一个密码本,一个线程分段读密码。当然,如果是在Python中,建议不要采用多线程,因为Python中的线程就是鸡肋,有兴趣的可以阅读相关资料。
  2. 利用GPU加速:我们以上的代码都是运行在CPU上的,即使开启多线程(进程)也只是利用到CPU的资源,但如果想要加速破解过程,我们其实还可以利用闲置的GPU资源。在介绍为什么可以利用GPU加速前,我们需要明确一个观点,两者都为了完成计算任务而设计。那为什么会想到使用GPU加速呢?这是就要说到两者的不同了:CPU虽然有多核,但总数没有超过两位数,并且每个核的运算能力极其强大。而GPU的核数远超CPU,但每个核的运算能力与CPU的核相比就相差甚远了。因此理论上在破解密码的过程中,我们完全可以使用GPU来加速这一过程。事实上,这样的工具也已经出现了,Hashcat便是最出名的一个,它号称是世界上最快的密码恢复工具,可以基于CPU/GPU等工作。

到此,相信大家对「如何使用Python破解ZIP或RAR文件密码」有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关文章

kali linux网络扫描~局域网扫描

kali linux网络扫描~局域网扫描

理论知识 IP地址是由网络地址和主机地址两部分组成。网络地址表示所属的互联网部分,主机地址表示所属网络中的具体主机。IP地址根据网络号和主机号的不同,分为三类和两类特殊地址。 A类:1.0.0.0—...

信息系统安全与对抗实践(北京理工大学) 中国大学mooc慕课答案100分最新版

信息系统安全与对抗实践(北京理工大学) 中国大学mooc慕课答案100分最新版

第一单元第一单元测试 本单元测试主要涵盖了如何简单避免恶意代码进入U盘建立autorun.inf文件夹、学生在与骗子的斗争过程中使用的对抗方法、骗子在施骗过程中使用的网络欺诈行为等内容。 在避免恶意代...

程序员必须掌握的linux命令

程序员必须掌握的linux命令

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 计算机硬件是由运算器、控...

完成你的黑客梦!我用Python来暴力破解了WiFi的密码

完成你的黑客梦!我用Python来暴力破解了WiFi的密码

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 import os fi...