📜  如何在Python中破解 PDF 文件?

📅  最后修改于: 2022-05-13 01:55:47.564000             🧑  作者: Mango

如何在Python中破解 PDF 文件?

先决条件: tqdm

在本文中,我们将学习如何使用Python破解受保护的 PDF 文件。在这里,我们将使用蛮力方法,在Python中使用pikepdf模块破解 PDF 文件。

所需模块:

  • pikepdf是一个Python模块,用于创建、操作和修复 PDF 文件。
pip install pikepdf
  • tqdm是使用Python的更全面的进度条包之一,对于您想要构建脚本以让用户了解应用程序状态的那些实例非常方便。
pip install tqdm

不过,我们不会为此使用pikepdf ,我们只需要打开受密码保护的 PDF 文件,如果成功,则表示密码正确,否则会引发 PasswordError 异常。

一步步理解实现:

  • 这里我们将使用一个包含密码列表的文本文件,在此处获取。
  • 我们将遍历所有密码列表并尝试使用每个密码打开文件,绕过open()方法的密码参数,如果密码不匹配,则会引发 PasswordError。
  • 最后一步是进度,比如剩余多少单词,为了显示进度,我们将使用tqdm模块。

下面是完整的实现:

Python3
# Import Required Module
import pikepdf
from tqdm import tqdm
  
# Empty password list
passwords = []
  
# Contain passwords in text file
password_text_file = "Password Text File"
  
# Iterate through each line
# and store in passwords list
for line in open(password_text_file):
    passwords.append(line.strip())
      
# iterate over passwords
for password in tqdm(passwords, "Cracking PDF File"):
    try:
        
        # open PDF file and check each password
        with pikepdf.open("Protected PDF File",
                          password = password) as p:
            
            # If password is correct, break the loop
            print("[+] Password found:", password)
            break
              
    # If password will not match, it will raise PasswordError
    except pikepdf._qpdf.PasswordError as e:
        
        # if password is wrong, continue the loop
        continue


输出: