假设我们有一个已经加密的pdf文件,但是突然想不起密码来了,那么如何打开这个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文件。它提供了围绕c ++ qpdf库的pythonic包装器。
但是,我们不会使用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列表或任何其他大单词列表。
接下来,我们遍历列表,尝试通过将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可以做到这一点,让我们下载它:

下载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,这是我的结果:

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

使用john ripper成功破解了密码我们只需使用命令“ john [hashfile]”。如您所见,该密码012345以4503p / s的速度被发现。

三、使用iseepassword dr.pdf破解pdf密码

并非所有用户都喜欢使用python进行编码或使用linux中的命令。因此,如果您正在windows上寻找有效的pdf密码破解程序,那么iseepassword dr.pdf是最佳选择之一。

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

当前,密码破解速度高达每秒100k,使其成为破解pdf密码最快的程序之一。

四、总结

就是这样,我们的工作已经完成,我们已经使用三种方法成功破解了pdf密码:pikepdf,john the ripper和iseepassword dr.pdf。第一种方法需要花费很多时间来破解密码,但是对于python程序员而言非常直观,而其他方法是在短时间内获取pdf文件密码的最终方法。本文旨在解密破解过程,不得用于非法目的与用途