Python PDF一键加解密:拖进文件秒出保险箱——再也不用到处找“会员”

PDF加密, 本地解密, 命令行, AES安全, 瑞士军刀

故事开场:一把瑞士军刀救了出差的你

周五下午,你把项目投标书 PDF 发进同事群,却想起里面还有内部报价!
微信撤回已来不及,急得团团转。
这时,你从移动硬盘掏出“小白瑞士军刀”——pdf_encryptor.py
拖进文件,一行命令:

python pdf_encryptor.py -e report.pdf

输入密码,文件秒变 report.pdf.aes
群里就算有人下载,也打不开,安心下班!
痛点解决:再也不用到处找“会员加解密”,本地 AES 一锁到底。


完整代码(≤1000字符,直接展示)

import argparse, getpass, os, sys
import pyAesCrypt

BUFFERSIZE = 64 * 1024

def parse_args():
    parser = argparse.ArgumentParser(description="Encrypt/Decrypt PDF")
    parser.add_argument('-e', '--encrypt', metavar='file', help='加密')
    parser.add_argument('-d', '--decrypt', metavar='file', help='解密')
    return parser.parse_args()

def encrypt(filename, pwd):
    pyAesCrypt.encryptFile(filename, f"{filename}.aes", pwd, BUFFERSIZE)
    print(f"{filename} 已加密为 {filename}.aes")

def decrypt(filename, pwd):
    out = filename.replace(".aes", "")
    try:
        pyAesCrypt.decryptFile(filename, out, pwd, BUFFERSIZE)
        print(f"{out} 已解密")
    except ValueError:
        print("密码错误或文件损坏")

if __name__ == '__main__':
    args = parse_args()
    if args.encrypt:
        pwd = getpass.getpass("请输入加密密码> ")
        encrypt(args.encrypt[0], pwd)
    elif args.decrypt:
        pwd = getpass.getpass("请输入解密密码> ")
        decrypt(args.decrypt[0], pwd)

代码解析

功能块 1:参数解析

-e 加密、-d 解密,无参数自动打印帮助,小白不迷路。

parser.add_argument('-e', '--encrypt', metavar='file', help='加密')

功能块 2:AES 安全加密

pyAesCrypt.encryptFile 一行搞定 AES256-CBC,文件再大也秒锁。

pyAesCrypt.encryptFile(filename, f"{filename}.aes", pwd, BUFFERSIZE)

功能块 3:隐藏密码输入

getpass.getpass 不显示明文,旁边有人也安全。

pwd = getpass.getpass("请输入加密密码> ")

如果还想更厉害

扩展点子 1:批量文件夹

contracts/ 里所有 PDF 一键加密,文件名自动加 .aes

import glob
for pdf in glob.glob('contracts/*.pdf'):
    encrypt(pdf, pwd)

扩展点子 2:图形界面

tkinter 拖文件即加解密,密码框带星号显示。

import tkinter, tkinter.filedialog as fd
file = fd.askopenfilename()
# 复用 encrypt/decrypt

总结

pdf_encryptor.py 这把 40 行瑞士军刀,把“找在线工具→上传→下载”三步压缩成“拖文件+回车”。
你无需会员、无需联网,就能在本地 AES256 加解密 PDF。
再加两行批量或 GUI,它就从脚本升级成随身保险箱。
下次再怕文件泄露,直接敲命令,安心下班!

源码获取

完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐