zipfile是Python自带的一个zip压缩/解压缩库。
作为例子,我们创建一个zip压缩文件“test.zip”,并为其密码“123456”。
我们可以通过如下代码对这个文件进行解压缩:这段代码的执行结果是将test.zip中压缩的文件解压到当前工作目录下。
等一下,在上面的例子里,我们知道解压缩密码是什么。
但是现实情况往往是我们不知道密码。
不要急,我们先来看一下如果密码错了会发生什么。
不出所料,系统抛出一个异常:RuntimeError: Bad password for file ‘test.txt’虽然解压缩失败了,但是我们知道了一个重要信息,那就是我们可以通过捕获这个异常来得知当前密码是否正确。
既然有了快速检测密码是否正确的方法,我们就可以通过暴力搜索的方式对密码进行破解。
密码破解的一个常用手段就是使用密码字典。
密码字典通常是一个文件,里面保存着大量常用密码。
我们通过对字典用的密码进行遍历,如果真实密码出现在密码字典中,那么就可以成功破解。
具体代码如下:输出结果为:Password = ‘123456’当然,这种方法的成功率很大程度上取决于密码字典的大小。
密码字典越大,包含的密码就越多,成功破解的概率就越大。
但这同时带来一个问题,那就是更多的尝试次数会使得程序运行时间变长。
我们注意到,尝试不同的密码的过程完全是独立的,因此可以利用多线程并行执行,从而提高运行效率:大家可以在此基础上,发挥想象力,去实现更加强大的功能。
最后我要说的是,本文仅供技术学习和研究用,请不要利用它去做一些不好的事情。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)