使用python暴力破解PDF文件打开密码教程
一.什么叫PDF文件打开密码
首先我们需要知道,本文所破解的是pdf打开密码,而不是编辑密码,使用不同的软件打开设有打开密码的pdf文件,会有不同的提示,具体示例如下。
wps截图
adobe Acrobat 截图
Edge截图
Chrome截图
Word截图
因此,如果您的pdf在打开时出现如上图所示的对话框,同时您还知道该密码是由纯数字组成的,且知道该密码的位数,那么本文所提供的python脚本可能有助于您的破解。
二.源码
再次提醒,使用本源码的前提是您确定要破解的pdf文档打开密码由纯数字组成且您已经知道该密码的位数。
import pikepdf #是用来读取pdf文件
from IPython.display import clear_output
filenamePath = r"C:\train.pdf" # 在此处输入您的pdf文档的路径
recordPath=r"C:\record.txt" # 考虑到破解过程可能随时中断,因此使用一个txt记录破解进程
for pwd in range(0,99999999,1): # 此处的range范围可由您任意填写,这样您可以从任意范围内破解,需要注意最大值必须与密码位数对应
x=format(pwd,'08d') # 此处的08d即您认为的密码的位数,代表8位数,若是6位数字则改为’06d’,以此类推
print(x)
record=open(recordPath,'w', encoding='utf-8') # 将当前进度写入txt中,这样您可以随时中断破解进程随时开始
record.write(x)
record.close( ) # 关闭txt文件,以防爆内存
try:
pikepdf.open(filenamePath, password=x)
except:
clear_output(wait=False) # 前面的print(x)会导致屏幕打印大量的结果,本函数用于清除当前打印输出,防止爆内存
continue
else:
break
print(f"已经查找到密码为:{pwd}")
print("over")
三.参考资料
https://blog.csdn.net/m0_68174024/article/details/130692215
https://blog.csdn.net/m0_68174024/article/details/129977532
https://blog.csdn.net/qq_37043811/article/details/125372072