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文件内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python编程批量实现md5加密pdf文件的更多相关文章

  1. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  2. ios – 将PDF文件附加到电子邮件 – Swift

    我想发送带有PDF附件的电子邮件.我创建了PDF文件,然后我做了以下哪些错误我相信:在发送电子邮件之前,我可以看到附带的chart.pdf,但是当我发送电子邮件时,它是在没有附件的情况下发送的,这是因为我没有正确附加文件.解决方法您将错误的mimeType传递给addAttachmentData().使用application/pdf而不是pdf.

  3. xcode – 无法在iOS8beta5中使用UIWebView打开PDF文件

    如果是,请提供一些示例代码.解决方法我找到了一种在WebView中查看PDF的解决方法

  4. iOS从UIWebview内容创建pdf

    哪个是从webview内容中获取最佳质量pdf文档的最佳选择?

  5. ios – 在Swift中将图像合并为PDF

    我想创建一个应用程序,要求用户从设备相机上传图片,然后使用swift将这些图像合并为PDF.怎么能实现这一目标?

  6. 我们可以在IOS应用程序的UIWebview中将条款和条件作为PDF加载吗?

    我在UIWebview中向我的应用添加了条款和条件.我真正想知道的是,我可以将其显示为逐页的pdf文档,还是应该使用任何其他方法?App商店会接受pdf格式吗?解决方法是的,这可以使用UIWebview完成,肯定会被Apple接受.如果您尝试从WebURL显示PDF文件,请使用以下代码.或者,如果您的应用程序中捆绑了PDF文件,请使用以下代码.

  7. ios – 通过UIDocumentInteractionController与Mail交互

    我正在通过UIDocumentInteractionController与其他应用共享PDF.在添加此功能之前,我使用MFMailComposeViewController定制了“发送到电子邮件”按钮–但现在我的UIDocumentInteractionController中还有一个Mail按钮,我想使用它来避免重复按钮.我的问题是,通过旧的邮件控制器,我曾经设置主题和内容文本,而如果我使用UID

  8. Quicklook / QLPreviewController,iOS 8的一些问题,但一切都适用于iOS 7.1

    我正在使用QuickLook查看PDF文件.它在iOS7.1中正常工作,但iOS8GM会出现一些问题.图片比文字好,我想告诉你问题:iOS7.1Xcode6使用QuickLook进行转换页面滚动,navigationBar隐藏得很好————————————————–————————而现在,iOS8GM与Xcode6使用QuickLook进行转换…页面滚动,navigationBar不隐藏,页面指示器隐藏在NavigationBar后面与iPhone模拟器,iPad模拟器,iPhone设备和iPad设备相同

  9. 如何选择PDF中的文本行然后突出显示它们? (IOS)

    我不想使用FastPDFKit,因为它显示徽标并且需要花钱,或者UIWebView,因为它对我们可以用它做的事情非常有限,而且我想学习如何自己做这些:-)谢谢!

  10. 如何在iOS上生成带有“真实”文本内容的PDF?

    我想在iOS6应用程序中生成一个好看的PDF.我试过了:>UIView在上下文中渲染>使用CoreText>使用NsstringdrawInRect>使用UILabeldrawRect这是一个代码示例:呈现的UIViews只包含UIImageView一堆UILabel.我还尝试了在stackoverflow上找到的建议:继承UILabel并执行此操作:但这也没有改变任何事情.无论我做什么,当在预览中打开PDF时,文本部分可以选择作为块,但不是每个字符的字符,并且缩放pdf显示它实际上是位图图像.有什么建议

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部