Python编程批量实现md5加密pdf文件
Python编程实现批量md5加密pdf文件
今天在某公众号看到一个关于pdf文件加密模块的介绍,突然有了一个想法,编写一个批量加密某目录下的所有pdf文件。结合md5加密和文件查找等知识,实现这个想法。
运行环境:
OS:macOS Monterey Version 12.3.1(英文版)
IDE:PyCharm 2020.1
代码分享如下:
# 文件 :pdf加密.py # IDE :PyCharm # 导入加密模块 import pikepdf # 导入操作模块 import os # 导入md5加密模块 from hashlib import md5 # 此模块实现输入密码不显示 import getpass # 搜索pdf文件,加密 def search_pdf(path, passwrd, username): for pdfFile in os.listdir(path): pdfPath = os.path.join(path, pdfFile) if os.path.isdir(pdfPath): search_pdf(pdfPath, passwrd, username) elif '.pdf' in pdfPath: encry_pdf(pdfPath, encrypt_md5(passwrd), username) print(f'{pdfPath}已经加密!!密码保存好!!!') # 加密函数 def encrypt_md5(passwrd_str): new_md5 = md5() # 创建md5对象 new_md5.update(passwrd_str.encode(encoding='utf-8')) # 返回信息摘要 return new_md5.hexdigest() # 加密函数,参数为pdf文件名,密码 def encry_pdf(pdfname, passwrd, username): # 打开被加密的文件,允许覆盖 pdf = pikepdf.open(pdfname, allow_overwriting_input=True) # 保存加密文件 pdf.save(pdfname, encryption=pikepdf.Encryption(owner=passwrd,user=username, R=4)) # 主函数 if __name__ == '__main__': Done = True path = input('请输入文件所在目录:') while Done: try: passwrd1 = getpass.getpass("请输入加密文件的密码:", stream=None) passwrd2 = getpass.getpass("请再次输入加密文件的密码:", stream=None) if passwrd1 == passwrd2: username1 = input('请输入用户名:') search_pdf(path, passwrd1, username1) Done = False break else: print('密码输入有误!!!') except: print('请核实信息!!')
运行结果如下:
zsh: suspended sudo python pdf加密.py
(venv) (base) liuxiaowei@MacBookAir 10个有趣的Python高级脚本 % sudo python pdf加密.py
请输入文件所在目录:/Users/liuxiaowei/Desktop
请输入加密文件的密码:
请再次输入加密文件的密码:
密码输入有误!!! # 密码输入有误
请输入加密文件的密码:
请再次输入加密文件的密码:
密码输入有误!!!
请输入加密文件的密码:
请再次输入加密文件的密码: # 密码输入正确
请输入用户名:lxw
/Users/liuxiaowei/Desktop/sql注入.pdf已经加密!!密码保存好!!! # 当前目录下的pdf文件
/Users/liuxiaowei/Desktop/TS852D Specification.pdf已经加密!!密码保存好!!!
/Users/liuxiaowei/Desktop/md学习笔记/pdf/Windows PE权威指南.pdf已经加密!!密码保存好!!! # 子目录下的pdf文件
/Users/liuxiaowei/Desktop/md学习笔记/pdf/PythonCodingRule.pdf已经加密!!密码保存好!!!
/Users/liuxiaowei/Desktop/精通黑客免杀完整版.pdf已经加密!!密码保存好!!!
到此这篇关于Python编程批量实现md5加密pdf文件的文章就介绍到这了,更多相关Python加密pdf文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
pandas 对series和dataframe进行排序的实例
今天小编就为大家分享一篇pandas 对series和dataframe进行排序的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
这篇文章主要介绍了Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05
最新评论