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
- 密码字典获取
可以在kali系统的/usr/share/wordlists
目录下拷贝一份到uos系统中或者百度rockyou.txt文件 - 是否可以100%破解
破解速度与成功率和压缩密码的长度和复杂度有关,简单密码比较容易破解,复杂密码破解时间比较长甚至会破解失败 - 做实验时尽量选取密码字典中开头的密码以节约时间