如何在Python中破解PDF文件(详细实现教程)

Python如何破解PDF文件?本文带你了解如何使用 pikepdf、pdf2john 和其他工具在 Python 中破解受密码保护的 PDF 文件。
如何在Python中破解PDF文件?让我们假设你有一个受密码保护的 PDF 文件,访问它是你的首要任务,但不幸的是,你忽略了密码。所以,在这个阶段,你会寻找一种可以立竿见影的方法。在本教程中,你将学习如何:

  • 使用Python 中的pikepdf库暴力破解PDF 文件。
  • 提取 PDF 密码哈希并使用John the Ripper实用程序破解它。
  • 使用iSeePassword Dr.PDF程序破解 PDF 密码。
首先,安装所需的依赖项:
pip3 install pikepdf tqdm

使用 pikepdf 破解 PDF 密码如何在Python中破解PDF文件?pikepdf是一个 Python 库,允许我们创建、操作和修复 PDF 文件。它提供了一个围绕C++ QPDF 库的 Pythonic 包装器。
Python破解PDF文件示例: 不过,我们不会为此使用pikepdf,我们只需要打开受密码保护的 PDF 文件,如果成功,则表示密码正确,否则会引发PasswordError异常:
import pikepdf from tqdm import tqdm# load password list passwords = [ line.strip() for line in open("wordlist.txt") ]# iterate over passwords for password in tqdm(passwords, "Decrypting PDF"): try: # open PDF file with pikepdf.open("foo-protected.pdf", password=password) as pdf: # Password decrypted successfully, break out of the loop print("[ +] Password found:", password) break except pikepdf._qpdf.PasswordError as e: # wrong password, just continue in the loop continue

首先,我们从wordlist.txt当前目录的文件中加载一个密码列表,在这里获取。你也可以使用Rockyou 列表或任何其他大型词表。你还可以使用 Crunch 工具生成你自己的自定义词表。
接下来,我们遍历列表并尝试使用每个密码打开文件,通过将password参数传递给pikepdf.open()方法,pikepdf._qpdf.PasswordError如果密码不正确,这将引发。
Python破解PDF文件示例 - 我们在这里使用tqdm只是为了打印剩余单词数的进度,看看我的结果:
Decrypting PDF:43%|████████████████████████████████████████▏| 2137/5000 [ 00:06< 00:08, 320.70it/s] [ +] Password found: abc123

经过2137 次试验,大约用了 6 秒,找到了密码。如你所见,它的速度约为320 字/秒,我们将看看如何提高这个速度。
使用 John The Ripper 破解 PDF 密码Python如何破解PDF文件?John the Ripper是一款免费且快速的密码破解软件工具,可在许多平台上使用。但是,我们将在这里使用 Kali linux 操作系统,因为它已经预先安装好了。
首先,我们需要一种从 PDF 文件中提取密码哈希的方法,以便适合在 john 实用程序中进行破解。幸运的是,有一个 Python 脚本pdf2john.py可以做到这一点,让我们下载它:
如何在Python中破解PDF文件(详细实现教程)

文章图片
将受密码保护的 PDF 放在当前目录中,我的名为foo-protected.pdf,然后运行以下命令:
root@rockikz:~/pdf-cracking# python3 pdf2john.py foo-protected.pdf | sed "s/::.*$//" | sed "s/^.*://" | sed -r 's/^.{2}//' | sed 's/.\{1\}$//' > hash

这会将 PDF 密码哈希提取到一个名为 的新文件中hash,这是我的结果:
如何在Python中破解PDF文件(详细实现教程)

文章图片
将密码哈希保存到hash文件中后,我使用cat命令将其打印到屏幕上。
Python破解PDF文件示例 - 最后,我们使用这个哈希文件来破解密码:
如何在Python中破解PDF文件(详细实现教程)

文章图片
【如何在Python中破解PDF文件(详细实现教程)】我们只需使用命令"john [hashfile]"。如你所见,密码012345以4503p/s的速度被找到。
相关:  如何使用 hashlib 在 Python 中使用哈希算法。
使用 iSeePassword Dr.PDF 破解 PDF 密码Python如何破解PDF文件?并非所有用户都习惯使用 Python 编码或在 Linux 中使用命令。因此,如果你正在寻找一款有效的 Windows 上的 PDF 密码破解程序,那么iSeePassword Dr.PDF是最佳选择之一。
如何在Python中破解PDF文件(详细实现教程)

文章图片
Python破解PDF文件示例
如何在Python中破解PDF文件?这个PDF密码破解有一个易于理解的用户界面,所以即使是新手也知道如何使用这个程序。此外,它还提供了三种强大的密码破解算法,包括字典、蛮力和带面具的蛮力。你可以自由设置多种类型的参数来提高性能。
如何在Python中破解PDF文件(详细实现教程)

文章图片
Python破解PDF文件示例
目前,密码破解速度高达每秒100K,是破解PDF密码最快的程序之一。
结论就这样,我们的工作完成了。Python如何破解PDF文件?我们已经使用三种方法成功破解了 PDF 密码:pikepdf、 John The Ripper 和 iSeePassword Dr.PDF。第一种方法破解密码需要很多时间,但对Python程序员来说非常直观,而其他方法是在短时间内获取PDF文件密码的终极方法。确保将其用于道德和自用。

    推荐阅读