Python破解pdf打开密码

Python破解pdf打开密码

环境 版本
系统 uos
Python版本 Python3
模块 PyPDF2、pikepdf、tqdm

安装相应的模块

sudo pip3 install PyPDF2
sudo pip3 install pikepdf
sudo pip3 install tqdm

运行破解代码

import pikepdf
import os
from PyPDF2 import PdfFileReader
from tqdm import tqdm
filename = "/home/uos/Desktop/PyQt5入门.pdf" #pdf文件路径
wordlist = "/home/uos/Desktop/wordlists/rockyou.txt" #密码字典路径
n_words = len(list(open(wordlist, 'rb')))
fp = open(filename, "rb+")
pdfFile = PdfFileReader(fp)
filepath, tempfilename = os.path.split(filename)
with open(wordlist, "rb") as wordlist:
    if pdfFile.isEncrypted:
        for word in tqdm(wordlist, total=n_words, unit="word"):
            try:
                pdf = pikepdf.open(filename, password=word.strip())
            except:
                continue
            else:
                print("[+] Password found:", word.decode().strip())
                exit(0)
        print("[!] Password not found, try other wordlist!")

运行结果
密码为:bengie04

/home/uos/PycharmProjects/pythonProject1/venv/bin/python /home/uos/PycharmProjects/pythonProject1/main.py
  7%|▋         | 1011828/14344392 [22:20<4:54:19, 754.96word/s]
[+] Password found: bengie04

Process finished with exit code 0
  1. 密码字典获取
    可以在kali系统的/usr/share/wordlists目录下拷贝一份到uos系统中或者百度rockyou.txt文件
  2. 是否可以100%破解
    破解速度与成功率和压缩密码的长度和复杂度有关,简单密码比较容易破解,复杂密码破解时间比较长甚至会破解失败
  3. 做实验时尽量选取密码字典中开头的密码以节约时间
上一篇:给 Python 添加进度条 | 给小白的 tqdm 精炼实例!


下一篇:leetcode242,383