当前位置: 首页 > news >正文

pdf查看密码

pdf有两种密码方式,一种是打开后进入文件内容页面后需要密码才能进行修改等操作,网上有很多方式进行移除密码操作,第二种是打开就需要密码,我这里简单记录一个暴力破解的方式,仅供参考

import PyPDF2
import itertools
import stringdef decrypt_pdf(input_file, output_file, password):with open(input_file, "rb") as file:reader = PyPDF2.PdfReader(file)if reader.is_encrypted:try:if reader.decrypt(password):writer = PyPDF2.PdfWriter()for page in reader.pages:writer.add_page(page)with open(output_file, "wb") as output_pdf_file:writer.write(output_pdf_file)print(f"解密后文件已保存为: {output_file}")return Trueelse:print(f"密码'{password}'错误")except Exception as e:print(f"解密失败: {e}")else:print("该 PDF 文件没有加密。")return Falsedef generate_passwords(length):characters = string.ascii_letters + string.digits  # 字母加数字方式 可以添加其他字符for password in itertools.product(characters, repeat=length):yield ''.join(password)if __name__ == "__main__":input_pdf_path = r"d:\"  # 输入你的加密 PDF 文件路径output_pdf_path = r"d:\"  # 输出解密后文件的路径# 尝试生成长度为1到4的所有可能的密码for length in range(1, 5):  # 可调整最大长度print(f"尝试长度为 {length} 的密码...")for password in generate_passwords(length):if decrypt_pdf(input_pdf_path, output_pdf_path, password):break


http://www.mrgr.cn/news/265.html

相关文章:

  • Java语言程序设计基础篇_编程练习题16.22(播放、循环播放和停止播放一个音频剪辑)
  • Route路由 Vue2
  • 【STM32实物】基于STM32+ESP32+手机APP设计的智能宠物喂食系统实物源码原理图PCB设计文档演示视频——(文末工程资料下载)
  • 11、stm32控制180度舵机
  • 水库大坝安全预警系统的作用
  • Android 12系统源码_屏幕设备(二)DisplayAdapter和DisplayDevice的创建
  • 为何UDP攻击相比常规攻击更易导致服务器瘫痪?
  • 【数据结构】汇总六、图
  • tcpdump入门——每种flag分别表示什么意思
  • 虚幻5|AI行为树,进阶篇
  • linux查看网卡速度和pcie速度
  • 解决firefly rk3399使用ffmpeg硬解码rga报错的问题
  • Unity将摄像机视角保存成Json文件方便读取使用
  • Django+anaconda
  • 八股面试大总结②——Linux系统
  • JavaScript - 对象
  • 掌握ChatGPT写作艺术:从入门到精通的四个层次
  • 如何利用RPA自动化流程机器人优化企业财务流程
  • XSS---DOM破坏靶场复现
  • 换原相关(Linux、docker、pip)