Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

tengyunjiawucom 2018-08-06

关注头条号,私信回复资料会有意外惊喜呦………………最后一张照片有资料呦。

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

Python3 ZIP文件密码破解

准备材料

首先在目录C:UsershyDesktop(就是windows10系统下的桌面)下创建test.zip文件,设其密码为123456

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

password.txt是密码字典 ,里面是我随便输入的一些密码。

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

下面使用PyCharm编写代码

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

在python中操作zip文件, 基本上都是使用zipfile模块,他可以创建、解压文件,获取zip文件的元数据信息。 我们想要操作一个zip文件,第一步就是初始化ZipFile实例。下面我们打开我们准备好的test.zip文件。

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

目前我们只是传入一个参数地址,实例化了一个对象,想要解压文件还要是要到extractall方法,三个参数,path是解压的路径(默认为解压文件所在路径),members是需要解压出来的文件(默认为全部文件),pwd是密码。

extractall(self,path=None,members=None,pwd=None

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

我们会发现运行提示错误

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

提示我们的pwd的参数编码不对, 这是因为在python3中pwd需要的是byte, 所以需要我们自己转化:

zF.extractall(pwd=”1111111”.encode(“ascii”))

再运行提示

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

这才是正常的密码错误提示,这时候更在一下密码即可:

zF.extractall(pwd=”123456”.encode(“ascii”))

不过因为我们提前不知道密码,所以就用到密码字典啦,首先实例字典引用,然后把它转化为列表:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

这时候可能会提示错误,也有可能不是gbk

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

这是因为我系统默认的编码为gbk 但是我的密码字典是utf-8,所以报错。可是如果用sys.getdefaultencoding()查看,你会发现

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

是utf-8,这个并不准确,正确的方法是:

在Windows平台下,进入DOS窗口,输入:chcp

我的活动代码页为:936,它对于的编码格式为GBK

所以要我们自己取设置读取使用的编码:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

另外为了直观的看到进度,我添加了进度条功能,只要用的是

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

print(“ “+”[“+”>”get_progress+”-“get_pro+’]’+”%.2f” % percent + “%”,end=””)

至于print上面的就是数学上的知识啦。

看这篇文章的估计都不是特别新的新手,就不一步一步教了

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

这个程序简单,最主要的是你有个强大的密码字典,另外,感兴趣的还可以添加命令行输入路径功能,多线程解压,破解功能。

3秒钟,用python破解加密PDF

过程分析

因为pdf文件加密的密码是随机的,而且密码不长。首先,我们需要指导pdf的加密方式。

pdfid.py可以查看pdf文件的加密方式:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

pdf-parser.py可以让我们了解更多信息:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

加密信息在obj 26:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

我们可以得出结论使用的标准加密器。这种加密方法用的密钥是40bit的。

QPDF是一款用于确定pdf文件机密的方式。

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

QPDF的输出是invalid password,这说明pdf是用user 密码加密的。

作者写过很多关闭解密pdf文件的blog,但是使用的方法大多数是暴力破解,文章中作者用一种新的工具hashcat来破解密码。

下面是作者从pdf文件中提取到的hash值:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

这个格式是比较适合 John the Ripper,因为如果是hashcat呢,就只需要hash(field 2),而不需要其他域。

下面就提取field 2的内容:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

可以把输出保存在“encryption_test – CONFIDENTIAL.hash”中。

然后就可以用hashcat工具了,这里用的命令是:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

使用的参数有:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

工具破解的结果是:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

破解的密码是1806。

然后用QPDF进行验证:

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

结论:

得出的结论是:用40bit加密的4位字符user密码保护的pdf文件,几秒钟就可以用免费的,开源工具破解了。

破解加密pdf文件的开源工具:

Pdf工具地址:

https://blog.didierstevens.com/programs/pdf-tools/

pdf-parser下载地址:

http://didierstevens.com/files/software/pdf-parser_V0_6_8.zip

Makepdf下载地址:

http://didierstevens.com/files/software/make-pdf_V0_1_7.zip

pdfid下载地址:

http://didierstevens.com/files/software/pdfid_v0_2_2.zip

很多人在问,学习Python读什么书,这其实是一个非常通用的问题,学习分为三种方式:看书、上课,而读书学习是最实惠也是最高效的一种,小编整理了一些Python高分书籍给大家,从0基础到高级适合不同学习阶段,希望大家学习愉快。获取方式:点击小编头像,关注后私信回复“资料”即可下载。

Python|暴力破解 zip、pdf 加密文件,让你得到想要的一切

相关推荐