使用Python制作一个PDF批量加密工具

2025-01-02 15:50

本文主要是介绍使用Python制作一个PDF批量加密工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制...

1.简介

一个python写的PDF批量加密工具。PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件。批量加密可以大大提高工作效率,特别是在处理大量敏感文件时,能够快速且统一地保护文件安全。

PDF批量加密的好处:

提高工作效率‌:批量加密可以同时为多个文件设置密码,避免了逐个文件加密的繁琐过程。

保护信息安全‌:通过设置密码,只有知道密码的人才能访问文件,有效防止信息泄露。

统一管理‌:所有加密文件的密码相同,便于管理和回忆密码。

2.运行效果

使用Python制作一个PDF批量加密工具

使用Python制作一个PDF批量加密工具

编程

使用Python制作一个PDF批量加密工具

3.相关源码

import tkinter as tk
from tkinter import filedialog, messagebox
import os
import configparser
import PyPDF2


# 读取配置文件
config = configparser.ConfigParser()
confiphpg.read('config.ini')
last_password = config.get('Settings', 'LastPassword', fallback='')


# GUI窗口
root = tk.Tk()
root.title('PDF加密工具')


# 选择包含PDF文件的文件夹的函数
def select_pdf_folder():
    dir_path = filedialog.askdirectory()
    if dir_path:
        entry_pdf_path.delete(0, tk.END)
        entry_pdf_path.insert(0, dir_path)


# 选择保存路径的函数
def select_save_path():
    dir_path = filedialog.askdirectory()
    if dir_path:
        entry_save_path.delete(0, tk.END)
        entry_save_path.insert(0, dir_path)


# 加密文件夹内的所有PDF文件的函数
def encrypt_pdfs():
    pdf_folder = entry_pdf_path.get()
    save_path = entry_save_path.get()
    paChina编程ssword = entry_password.get()


    if not pdf_folder or not save_path or not password:
        messagebox.showerror('错误', '请填写所有字段')
        return


    # 确保节存在,如果不存在则创建
    if not config.has_section('Settings'):
        config.add_section('Settings')


    # 更新配置文件
    config.set('Settings', 'LastPassword', password)
    with open('config.ini', 'w') as config_file:
        config.write(config_file)


    # 遍历文件夹中的所有PDF文件
    for filename in os.listdir(pdf_folder):
        if filename.lower().endswith('.pdf'):
            pdf_path = os.path.join(pdf_folder, filename)
            with open(pdf_path, 'rb') as file:
                pdf_reader = PyPDF2.PdfReader(file)
                pdf_writer = PyPDF2.PdfWriter()


                for page in pdf_reader.pages:
                    pdf_writer.adwww.chinasem.cnd_page(page)


                pdf_writer.encrypt(password)


                new_file_path = os.path.join(save_path, filename)
                with open(new_file_path, 'wb') as new_file:
                    pdf_writer.write(new_file)


    messagebox.showinfo('完成', '所有PDF文件已加密')


# GUI布局
label_pdf_path = tk.Label(root, text='PDF源文件夹:')
label_pdf_path.grid(row=0, column=0, sticky='e')


entry_pdf_path = tk.Entry(root, width=50)
entry_pdf_path.grid(row=0, column=1, padx=5, pady=5)


button_browse_pdf = tk.Button(root, text='浏览', command=select_pdf_folder)
button_browse_pdf.grid(row=0, column=2, padx=5, pady=5)


label_save_path = tk.Label(root, text='保存PDF路径:')
label_save_path.grid(row=1, column=0, sticky='e')


entry_save_path = tk.Entry(root, width=50)
entry_save_path.grid(row=1, column=1, padx=5, pady=5)


button_browse_save = tk.Button(root, text='浏览', command=select_save_path)
buttonwww.chinasem.cn_browse_save.grid(row=1, column=2, padx=5, pady=5)


label_password = tk.Label(root, text='设置密码:')
label_password.grid(row=2, column=0, sticky='e')


entry_password = tk.Entry(root, show='', width=50)
entry_password.insert(0, last_password)
entry_password.grid(row=2, column=1, padx=5, pady=5)


button_encrypt = tk.Button(root, text='加密', command=encrypt_pdfs)
button_encrypt.grid(row=3, column=1, padx=5, pady=10)


# 运行GUI
root.mainloop()

到此这篇关于使用Python制作一个PDF批量加密工具的文章就介绍到这了,更多相关Python PDF批量加密内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于使用Python制作一个PDF批量加密工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1152897

相关文章

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Python读取TIF文件的两种方法实现

《Python读取TIF文件的两种方法实现》本文主要介绍了Python读取TIF文件的两种方法实现,包括使用tifffile库和Pillow库逐帧读取TIFF文件,具有一定的参考价值,感兴趣的可以了解... 目录方法 1:使用 tifffile 逐帧读取安装 tifffile:逐帧读取代码:方法 2:使用

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

springcloud之FeignClient使用详解

《springcloud之FeignClient使用详解》Feign是一种声明式、模板化的HTTP客户端,可以简化微服务之间的远程过程调用,通过Feign,开发者可以像调用本地方法一样调用远程服务,而... 目录前言业务场景架构说明调用逻辑1、A-FeignClient2、A微服务3、B微服务小结前言在微

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

使用Python实现生命之轮Wheel of life效果

《使用Python实现生命之轮Wheeloflife效果》生命之轮Wheeloflife这一概念最初由SuccessMotivation®Institute,Inc.的创始人PaulJ.Meyer... 最近看一个生命之轮的视频,让我们珍惜时间,因为一生是有限的。使用python创建生命倒计时图表,珍惜时间