手机如何解压忘记密码的压缩包 手机压缩包忘了密码怎么打开



文章插图
手机如何解压忘记密码的压缩包 手机压缩包忘了密码怎么打开

文章插图
一、破解原理
其实原理很简单,一句话概括就是「大力出奇迹」,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()breakexcept:passfpPwd.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')四、使用
如果想要使用上述代码,我们只需在命令行执行python main.py <filename>即可 。例如python main.py test.zip
运行结果:
$ python main.py test.zipSuccess! ====>323126
五、扩展
【手机如何解压忘记密码的压缩包 手机压缩包忘了密码怎么打开】密码本如何获取?
https://github.com/YueYongDev/Blasting_dictionary