【python实用小脚本-188】Python PDF一键加解密:拖进文件秒出保险箱——再也不用到处找“会员”
·
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
更多推荐
所有评论(0)