如何用python破解pdf的密码

假设我们有一个已经加密的pdf文件,但是突然想不起密码来了 , 那么如何打开这个pdf文件呢,今天教大家如何用python破解pdf的密码 。

如何用python破解pdf的密码

下面介绍三种方式:
【如何用python破解pdf的密码】1、使用Python中的pikepdf库进行暴力破解PDF文件 。
2、提取PDF密码哈希并使用John Ripper来破解它 。
3、使用iSeePassword Dr.PDF程序破解PDF密码 。
首先,安装必需的依赖项:
pip3 install pikepdf tqdm
一、使用pikepdf破解PDF密码
pikepdf是一个Python库,可让我们创建 , 操作和修复PDF文件 。它提供了围绕CQPDF库的Pythonic包装器 。
但是,我们不会使用pikepdf , 我们只需要打开受密码保护的PDF文件,如果成功,则表明它是正确的密码,否则将引发PasswordError异常:
import pikepdffrom tqdm import tqdm# load password listpasswords = [ line.strip() for line in open("wordlist.txt") ]# iterate over passwordsfor password in tqdm(passwords, "Decrypting PDF"):try:# open PDF filewith pikepdf.open("foo-protected.pdf", password=password) as pdf:# Password decrypted successfully, break out of the loopprint("[ ] Password found:", password)breakexcept pikepdf._qpdf.PasswordError as e:# wrong password, just continue in the loopcontinue

首先,我们从wordlist.txt当前目录中的文件加载密码列表,在此处获取 。您也可以使用rockyou列表或任何其他大单词列表 。
接下来 , 我们遍历列表,尝试通过将password参数传递给pikepdf.open()method来使用每个密码打开文件,pikepdf._qpdf.PasswordError如果输入的密码不正确 , 则会引发该错误 。
我们在这里使用tqdm只是打印剩余多少单词的进度,查看我的结果:
Decrypting PDF: 43%|████████████████████████████████████████▏ | 2137/5000 [00:06<00:08, 320.70it/s]
[ ] Password found: abc123

经过2137次试用后 , 找到了该密码,耗时约6秒钟 。如您所见,它的运行速度约为320字/秒 , 我们将了解如何提高此速度 。
二、使用John Ripper破解PDF密码
John Ripper是一个免费且快速的密码破解软件工具,可在许多平台上使用 。但是,这里将预装Kali linux操作系统 。
首先 , 我们需要一种方法来从PDF文件中提取密码哈希,以便适合破解john utility 。幸运的是,有一个Python脚本pdf2john.py可以做到这一点,让我们下载它:
如何用python破解pdf的密码


下载pdf2john.py将受密码保护的PDF放在当前目录中,我的名为foo-protected.pdf,然后运行以下命令:
root@bfw:~/pdf-cracking# python3 pdf2john.py foo-protected.pdf | sed "s/::.*$//" | sed "s/^.*://" | sed -r 's/^.{2}//' | sed 's/.{1}$//' > hash
这会将PDF密码哈希提取到名为的新文件中hash , 这是我的结果:
如何用python破解pdf的密码


使用pdf2john提取PDF密码哈希将密码哈希保存到hash文件中后,使用cat命令将其打印到屏幕上 。
最后,我们使用此哈希文件来破解密码:
如何用python破解pdf的密码


使用John Ripper成功破解了密码我们只需使用命令“ john [hashfile]” 。如您所见,该密码012345以4503p / s的速度被发现 。
三、使用iSeePassword Dr.PDF破解PDF密码
并非所有用户都喜欢使用Python进行编码或使用Linux中的命令 。因此,如果您正在Windows上寻找有效的PDF密码破解程序,那么iSeePassword Dr.PDF是最佳选择之一 。
如何用python破解pdf的密码


导入PDF文件
该PDF密码破解程序具有易于理解的UI,因此 , 即使是新手,也都知道如何使用该程序 。此外,它提供了三种强大的密码破解算法,包括Dictionary,暴力和自定义暴力破解 。您可以自由设置几种类型的参数来提高性能 。
找到密码图片
如何用python破解pdf的密码

当前,密码破解速度高达每秒100K,使其成为破解PDF密码最快的程序之一 。
四、总结
就是这样,我们的工作已经完成,我们已经使用三种方法成功破解了PDF密码:pikepdf,John The Ripper和iSeePassword Dr.PDF 。第一种方法需要花费很多时间来破解密码 , 但是对于Python程序员而言非常直观,而其他方法是在短时间内获取PDF文件密码的最终方法 。本文旨在解密破解过程,不得用于非法目的与用途 。
关注我,每天更新一篇技术好文 。

相关经验推荐