Python PDF批量加密工具

打印 上一主题 下一主题

主题 775|帖子 775|积分 2325

Python PDF批量加密工具

1.简介:

‌一个Python写的PDF批量加密工具。PDF批量加密‌是一种掩护PDF文件安全性的方法,通过为多个PDF文件设置相同的暗码,防止未经授权的用户访问这些文件。批量加密可以大大提高工作效率,特别是在处理大量敏感文件时,能够快速且统一地掩护文件安全。源码已分享到下方,大家有需要可自行下载,顺带点个关注哦,主页还有更多干货内容!
PDF批量加密的好处:


  • 提高工作效率‌:批量加密可以同时为多个文件设置暗码,避免了逐个文件加密的繁琐过程。
  • ‌掩护信息安全‌:通过设置暗码,只有知道暗码的人才能访问文件,有效防止信息泄露。
  • 统一管理‌:全部加密文件的暗码相同,便于管理和回想暗码。
2.运行效果:



3.相关源码:

  1. import tkinter as tk
  2. from tkinter import filedialog, messagebox
  3. import os
  4. import configparser
  5. import PyPDF2
  6. # 读取配置文件
  7. config = configparser.ConfigParser()
  8. config.read('config.ini')
  9. last_password = config.get('Settings', 'LastPassword', fallback='')
  10. # GUI窗口
  11. root = tk.Tk()
  12. root.title('PDF加密工具')
  13. # 选择包含PDF文件的文件夹的函数
  14. def select_pdf_folder():
  15.     dir_path = filedialog.askdirectory()
  16.     if dir_path:
  17.         entry_pdf_path.delete(0, tk.END)
  18.         entry_pdf_path.insert(0, dir_path)
  19. # 选择保存路径的函数
  20. def select_save_path():
  21.     dir_path = filedialog.askdirectory()
  22.     if dir_path:
  23.         entry_save_path.delete(0, tk.END)
  24.         entry_save_path.insert(0, dir_path)
  25. # 加密文件夹内的所有PDF文件的函数
  26. def encrypt_pdfs():
  27.     pdf_folder = entry_pdf_path.get()
  28.     save_path = entry_save_path.get()
  29.     password = entry_password.get()
  30.     if not pdf_folder or not save_path or not password:
  31.         messagebox.showerror('错误', '请填写所有字段')
  32.         return
  33.     # 确保节存在,如果不存在则创建
  34.     if not config.has_section('Settings'):
  35.         config.add_section('Settings')
  36.     # 更新配置文件
  37.     config.set('Settings', 'LastPassword', password)
  38.     with open('config.ini', 'w') as config_file:
  39.         config.write(config_file)
  40.     # 遍历文件夹中的所有PDF文件
  41.     for filename in os.listdir(pdf_folder):
  42.         if filename.lower().endswith('.pdf'):
  43.             pdf_path = os.path.join(pdf_folder, filename)
  44.             with open(pdf_path, 'rb') as file:
  45.                 pdf_reader = PyPDF2.PdfReader(file)
  46.                 pdf_writer = PyPDF2.PdfWriter()
  47.                 for page in pdf_reader.pages:
  48.                     pdf_writer.add_page(page)
  49.                 pdf_writer.encrypt(password)
  50.                 new_file_path = os.path.join(save_path, filename)
  51.                 with open(new_file_path, 'wb') as new_file:
  52.                     pdf_writer.write(new_file)
  53.     messagebox.showinfo('完成', '所有PDF文件已加密')
  54. # GUI布局
  55. label_pdf_path = tk.Label(root, text='PDF源文件夹:')
  56. label_pdf_path.grid(row=0, column=0, sticky='e')
  57. entry_pdf_path = tk.Entry(root, width=50)
  58. entry_pdf_path.grid(row=0, column=1, padx=5, pady=5)
  59. button_browse_pdf = tk.Button(root, text='浏览', command=select_pdf_folder)
  60. button_browse_pdf.grid(row=0, column=2, padx=5, pady=5)
  61. label_save_path = tk.Label(root, text='保存PDF路径:')
  62. label_save_path.grid(row=1, column=0, sticky='e')
  63. entry_save_path = tk.Entry(root, width=50)
  64. entry_save_path.grid(row=1, column=1, padx=5, pady=5)
  65. button_browse_save = tk.Button(root, text='浏览', command=select_save_path)
  66. button_browse_save.grid(row=1, column=2, padx=5, pady=5)
  67. label_password = tk.Label(root, text='设置密码:')
  68. label_password.grid(row=2, column=0, sticky='e')
  69. entry_password = tk.Entry(root, show='', width=50)
  70. entry_password.insert(0, last_password)
  71. entry_password.grid(row=2, column=1, padx=5, pady=5)
  72. button_encrypt = tk.Button(root, text='加密', command=encrypt_pdfs)
  73. button_encrypt.grid(row=3, column=1, padx=5, pady=10)
  74. # 运行GUI
  75. root.mainloop()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表