利用 Python 破解 ZIP 或 RAR 文件密码
常会从网络上下载一些带密码的压缩包,想要获取里面的内容,往往就要给提供商支付一些费用。想要白嫖其中的内容,常见的做法是百度搜索一些压缩包密码破解软件,但后果相信体验过的人都知道。本文将会利用 Python 破解压缩包的密码,这里以 ZIP/RAR 为例。
本文源码可在本文下方留言「获取压缩包」并私信可获得
破解原理
其实原理很简单,一句话概括就是「大力出奇迹」,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')