Python 中zipFile的用法

通过 Python 内置的 zipfile 模块实现对 zip 文件的解压,加点料完成口令破解。

zipfile模块基本使用

使用 zipfile 压缩文件

import zipfile

#创建一个zip文件对象,压缩是需要把mode改为‘w’

zfile=zipfile.ZipFile("test.zip","w")

#将文件写入zip文件中,即将文件压缩

zfile.write(r"../test.py")

#将zip文件对象关闭

zfile.close()

使用 zipfile 解压文件

import zipfile

#解压

zfile=zipfile.ZipFile("../test.zip","r")

zfile.extractall()

准备阶段

首先你需要一个压缩文件,并且给它加上密码,样子长成这样

Python 中zipFile的用法_第1张图片

Python 中zipFile的用法_第2张图片

然后你就成功 Get 了一个自带密码的压缩文件,好了,这就结束了。

暴力破解

首先我们先知道下什么是暴力破解,其实简单粗暴点来说,就是通过轮循的方式比对,我们一定都知道 MD5 加密,那么 MD5 是不可逆的,那网上那些所谓的 MD5 解密的网站是怎么做到的,其实也是暴力破解的方式。

举个栗子,你通过 MD5 加密了一段字符串 str="abc" 加密后的结果为 "3cd24fb0d6963f7d" 这么一长串别人肯定看不懂,MD5 解密网站怎么做的,他们自己没事干的时候开始瞎试,把 aa/cc/bb/abc 啥的都开始用 MD5加密一遍,存到自己的数据库里,当你去查询的时候,他们会根据你提供的 "3cd24fb0d6963f7d" 在数据库里面比对,如果巧合的话就能找不到,大部分情况你的加密字符串稍微复杂点都找不到,这就是所谓的 MD5 解密,也就是暴力破解了。

上代码

import zipfile #导入模块,它是做压缩和解压缩的

password="123" #我们设定的口令

zfile = zipfile.ZipFile("test.zip") #要解压缩的压缩包

zfile.extractall(path='C:\Users\Administrator\Desktop\', members=zfile.namelist(), pwd=password.encode('utf-8'))

#进行解压缩操作,path为输出的路径

我们运行一下上面的代码(当然你的加密口令要为 123 ),会发现在桌面上已经把 test.zip 解压出来了,完美 ending,不对还差一个暴力破解呢,自己知道密码还要破解啥有用,别着急,继续往下看。

pwd.txt 里面内容如下

1223

abc

aaa

123

好了,这就完成了 zip 文件口令的暴力破解,其实只是很巧妙的利用了 try except 异常机制,当解压正常的时候就正常密码正常,解压失败会报出异常,动手试试

你可能感兴趣的:(python)