python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密

上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人!

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

在Anaconda终端下输入代码

pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple/ PyPDF2
  •  

如图,表示成功安装
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第1张图片
我在Windows系统下的cmd也输入这条代码,成功运行,但是更喜欢用Anaconda (实力推荐,不打广告,因为又不给我钱) 这个是真的方便。

有两点值得很推荐Anaconda的地方:

  1. 很方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包
  2. 在数据可视化、机器学习、深度学习等多方面都有涉及。

不多说啦,上代码
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第2张图片

上代码

加密

比如说此时我要对G:\eg下面的“示例 1.pdf”文件进行加密,加密后的仍然显示在当前文件夹并且名称为"示例 1加密.pdf"
运行之前
在这里插入图片描述

from PyPDF2 import PdfFileWriter, PdfFileReader

pdf_reader = PdfFileReader(r'G:\eg\示例 1.pdf') #输入你想要操作的pdf文档的位置/名称
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page))

pdf_writer.encrypt('123456') #括号里面填写密码
with open('G:\eg\示例 1加密.pdf', 'wb') as out:
    pdf_writer.write(out)

运行之后
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第3张图片

打开加密文件
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第4张图片
加密成功!

解密

比如说此时我要对G:\eg下面的“示例 1加密.pdf”文件进行解密,加密后的仍然显示在当前文件夹并且"名称为示例 1.pdf"
运行之前
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第5张图片

from PyPDF2 import PdfFileWriter, PdfFileReader

pdf_reader = PdfFileReader(r'G:\eg\示例 1加密.pdf') #输入你想要操作的pdf加密的文档的位置/名称
pdf_reader.decrypt('123456')
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page))

with open('G:\eg\示例 1.pdf', 'wb') as out:
    pdf_writer.write(out)


运行之后
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第6张图片
随时打开示例 1.pdf , 就没有密码啦
python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第7张图片
注意:
这边需要注意的一点是,我踩了一个坑,大家不要再踩了(虽然低级到不能再低级,我还是犯了)
我说我怎么什么都是对的怎么还报错,整得我把API看了又看,整了我一上午python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密_第8张图片
第二行代码是直接输入你想要解密的文件位置+名称,而不是你没有加密的文件位置+名称
倒数第二行同理

其实,如果不知道密码的情况下可以强制解密,但是也是知道密码的主要构成类型,或者还知道这一大部分内容,可以写一段代码一个一个试出来。因此在设置密码的时候一定要设置长一点,复杂一点。

良心提醒:即使找到这种代码也不要有去破坏人家隐私的行为傲

你可能感兴趣的:(python,编程语言)