本文将介绍如何通过zipfile包对加密zip文件进行破解。
zipfile是Python自带的一个zip压缩/解压缩库。
作为例子,我们创建一个zip压缩文件“test.zip”,并为其密码“123456”。
我们可以通过如下代码对这个文件进行解压缩:
这段代码的执行结果是将test.zip中压缩的文件解压到当前工作目录下。
等一下,在上面的例子里,我们知道解压缩密码是什么。但是现实情况往往是我们不知道密码。不要急,我们先来看一下如果密码错了会发生什么。
不出所料,系统抛出一个异常:
RuntimeError: Bad password for file ‘test.txt’
虽然解压缩失败了,但是我们知道了一个重要信息,那就是我们可以通过捕获这个异常来得知当前密码是否正确。
既然有了快速检测密码是否正确的方法,我们就可以通过暴力搜索的方式对密码进行破解。
密码破解的一个常用手段就是使用密码字典。密码字典通常是一个文件,里面保存着大量常用密码。我们通过对字典用的密码进行遍历,如果真实密码出现在密码字典中,那么就可以成功破解。具体代码如下:
输出结果为:
Password = ‘123456’
当然,这种方法的成功率很大程度上取决于密码字典的大小。密码字典越大,包含的密码就越多,成功破解的概率就越大。但这同时带来一个问题,那就是更多的尝试次数会使得程序运行时间变长。
我们注意到,尝试不同的密码的过程完全是独立的,因此可以利用多线程并行执行,从而提高运行效率:
大家可以在此基础上,发挥想象力,去实现更加强大的功能。
最后我要说的是,本文仅供技术学习和研究用,请不要利用它去做一些不好的事情。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。