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

(0)

相关推荐

  • python MD5加密的示例

    什么是MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992). MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑

  • python3 常见解密加密算法实例分析【base64、MD5等】

    本文实例讲述了python3 常见解密加密算法.分享给大家供大家参考,具体如下: 一.使用base64 Base64编码,64指A-Z.a-z.0-9.+和/这64个字符,还有"="号不属于编码字符,而是填充字符. 优点:方法简单 缺点:不保险,别人拿到密文可以自己解密出明文 编码原理:将3个字节转换成4个字节((3 X 8)=24=(4X6)),先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了. 解码原理:将4个字节转换成3个字节,先读入4个6位(用或

  • C# 和 Python 的 hash_md5加密方法

    目录 一.C# 和 Python 的 hash_md5加密 1.C#版本1 2.C#版本2 3.Python版本 一.C# 和 Python 的 hash_md5加密 1.C#版本1 public static string GenerateMD5Hash(string str) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] byteArray = Encoding.UTF8.GetBytes(st

  • python UDF 实现对csv批量md5加密操作

    工作上遇到需求,一批手机号要md5加密导出.为了保证数据安全,所以没有采用网上工具来加密. md5的加密算法是开源的且成熟的,很多语言都有对应包可以直接用,我写了一个简单的python来实现,另一位同事做了一个hiveUDF来实现,这里都给大家分享一下. 目标: 读取csv文件,并且对其中的内容进行md5加密,32位加密,将加密后的密文存入另一个csv文件. python实现: (1)准备好要读取的csv文件.单列,一行存一个手机号码. (2)python代码: #encoding=utf8 i

  • Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)

    生活中我们经常会遇到一些加密算法,今天我们就聊聊这些加密算法的Python实现.部分常用的加密方法基本都有对应的Python库,基本不再需要我们用代码实现具体算法. MD5加密 全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致.md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密.Python代码: i

  • Python常用base64 md5 aes des crc32加密解密方法汇总

    1.base64 Python内置的base64模块可以实现base64.base32.base16.base85.urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式. base64模块的base64编码.解码调用了binascii模块,binascii模块中的b2a_base64()函数用于base64编码,binascii模块中的a2b_base64()函数用于base64解码. >>>import base64 >&

  • 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 # 导入操作模块 impo

  • Python中使用pypdf2合并、分割、加密pdf文件的代码详解

    朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录.首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库. 可以使用pip直接安装: pip install pypdf2 官方文档: pythonhosted.org/PyPDF2/ 里面主要有这几个类: PdfFileReader . 该类主要提供了对pdf文件的读操作,其构造方法为: PdfFileReader(stream, strict=True,

  • Python实现批量更换指定目录下文件扩展名的方法

    本文实例讲述了Python实现批量更换指定目录下文件扩展名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2013-12-06 #function: 深度遍历指定目录,更换指定扩展名 import os import os.path #读入指定目录并转换为绝对路径 rootdir = raw_input('root dir:\n') rootdir = os.path.abspath(rootdir) print('abso

  • Python分割指定页数的pdf文件方法

    如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止页 end_page = 5 output = PdfFileWriter() pdf_file = PdfFileReader(open("3.pdf", "rb")) pdf_pages_len = pdf_file.getNumPages() # 保存input.pdf中的1-5页到output.pdf

  • 利用Python如何批量修改数据库执行Sql文件

    前言 由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些重复性的劳动,所以打算用Python来批量执行sql 环境 版本:Python3.6 系统:MacOS IDE:PyCharm 第三方库:pymysql Show Code import pymysql host = 'xxx.65.9.191' username = 'root' passw

  • Python编程快速上手——PDF文件操作案例分析

    本文实例讲述了Python PDF文件操作.分享给大家供大家参考,具体如下: 题目如下: 利用第九章的os.walk()函数编写脚本,遍历文件夹中的所有pdf,用命令行提供的命令对这些PDF进行加密,用原来的文件名加上_encrypted.pdf后缀,保存每个加密的PDF.在删除原来的文件之前,尝试用程序读取并解密该文件,确保被正确加密 然后编写一个程序,找到文件夹中所有加密的PDF文件,利用提供的口令,创建pdf的解密拷贝,如果口令不对,程序应该打印一条消息, 并继续处理下一个pdf文件 思路

  • 一文教会你用Python读取PDF文件

    目录 实战场景 Python PDF 实战编码 补充 实战场景 Python 工程师在日常的工作中,经常会碰到解析和处理PDF文件的情况,实战中需求主要分为如下情况: 提取 PDF 中的文字 将 PDF 中每页转换为图片 word 转换为PDF PDF生成,编辑,导入导出 PDF在线渲染 除了最后一项需要前端配合以外,其余内容都可以直接在 python 端进行实现. 本次实战选择 pdfplumber 库进行学习,可以提前安装该库,不过有一点需要注意,该库主要用于读取 PDF 进行操作,写入和编

  • Python实现简单拆分PDF文件的方法

    本文实例讲述了Python实现简单拆分PDF文件的方法.分享给大家供大家参考.具体如下: 依赖pyPdf处理PDF文件 切分pdf文件 使用方法: 1)将要切分的文件放在input_dir目录下 2)在configure.txt文件中设置要切分的份数(如要切分4份,则设置part_num=4) 3)执行程序 4)切分后的文件保存在output_dir目录下 5)运行日志写在pp_log.txt中 P.S. 本程序可以批量切割多个pdf文件 from pyPdf import PdfFileWri

  • 2行Python代码实现给pdf文件添加水印

    目录 1. 引言 2.指定水印内容输出到pdf文件 2.1 模块安装 2.2 思路 2.3 代码示例 3.水印内容批量输出到pdf文件 3.1 模块安装 3.2 思路 3.3 代码示例 4.总结 1. 引言 小屌丝:鱼哥,新年快乐! 小鱼:无事不登三宝殿,有啥事,你直说吧… 小屌丝:别说的这么直接,这大过年的… 小鱼:别整没用的,就你那点小心思,我还能不知道. 小屌丝:… 小屌丝:鄙视就鄙视,只要能帮我解决问题,我然你鄙视三连! 小鱼:…还可以这样,那你说吧,啥事? 小屌丝:就是…就是… 小鱼:

  • Python对PDF文件的常用操作方法详解

    目录 工具 从PDF中提取文本 旋转和叠加页面 加密PDF文件 创建PDF文件 补充 工具 python3.7 Pycharm PDF PyPDF2 reportlab 从PDF中提取文本 PyPDF2没有办法从PDF文档中提取图像.图表或其他媒体,但它可以提取文本,并将其返回为Python字符串. import PyPDF2 reader = PyPDF2.PdfFileReader('test.pdf') page = reader.getPage(0) print(page.extract

随机推荐