概叙

今天因为需要用到一个参考文档,然后在网上找了一下,就下载了一个pdf文档!下载之后居然是加密的,如果要密码就要给钱?我这暴脾气,还真不能忍你!

​​

想收我得钱,不存在的,接下来就是破解过程了!

说句题外话,为什么现在越来越多的文档都是PDF格式呢?因为它是可移植文档格式(PDF)是在线附件中使用最广泛的文件格式之一。

大多数文档,例如电子书、扫描文档等,都使用这种pdf格式进行存储和共享。

为了在各种平台和媒体上共享,文档面临着许多威胁,例如信息泄漏和未经授权的个人访问。因此,一个人必须对他/她的文件进行加密,以防止这种可以避免的事件和暴露。

Python是一种足智多谋的编程语言,它提供了一个非常棒的模块,称为PyPDF2对pdf文件进行加密和解密,从而增强所包含信息的安全性。

PyPDF 2库能够:

  1. 提取文件信息,例如标题、页码等。
  2. 拆分和合并文档。
  3. 裁剪页面。
  4. 加解密。

PyPDF2不是内置的库,因此需要先安装它,然后才能使用:

pip3 install PyPDF2

下面的代码实现中使用的文件可以找到这里

加密PDF文件

文件加密需要在文档中添加密码,从而允许只访问授权人员。

为此,我们将遵循以下步骤:

步骤1:使用Reader对象打开pdf。

步骤2:通过迭代创建原始文件的副本

每一页,并将其添加到新的pdf文件。

步骤3:加密新的pdf文件。

守则执行

# Import the required module and sub-modules
from PyPDF2 import PdfFileWriter
from PyPDF2 import PdfFileReader# Create a PdfFileWriter object
result = PdfFileWriter()# Open the pdf file to encrypt
file = PdfFileReader('Magazine.pdf')# Retrieve the number of pages to iterate in the original document
length = file.numPages# Iterates through every page and adds it to the new file (a copy of the original)
for i in range(length):pages = file.getPage(i)result.addPage(pages)# Creates a variable password.
password = 'pam&Lab890'# Encrypt the file using the created password
result.encrypt(password)# Open a new file 'Magazines.pdf' and write the encrypted pdf file
with open('Magazines.pdf','wb') as f:result.write(f)

这将创建原始文件的类似副本(可能具有指定的不同名称),需要设置密码才能启用访问。

解密PDF文件

解密用给定的密码解锁文档,并将其转换为不需要密码密钥访问的pdf文件。

文件解密步骤与加密步骤几乎类似。

步骤1:使用Reader对象打开pdf。

步骤2:加密新的pdf文件。

步骤3:通过迭代创建原始文件的副本

每一页,并将其添加到新的pdf文件。

守则执行

# Import the required module and sub-modules
from PyPDF2 import PdfFileWriter
from PyPDF2 import PdfFileReader# Create a PdfFileWriter object
result = PdfFileWriter()# Open the password - secured pdf file to decrypt
file = PdfFileReader('Magazines.pdf')# Creates a variable password.
password = 'pam&Lab890'# First, check if the file is encrypted then proceed if encrypted
if file.isEncrypted:# Decrypt the file using the givenpassword file.decrypt(password)# Iterates through every page and adds it to the new file    for i in range(31):pages = file.getPage(i)result.addPage(pages)# Open a new file 'Magazines1.pdf' and write the encrypted pdf filewith open('Magazines1.pdf','wb') as f:result.write(f)print('File decrypted successfully')else:print('File is not encrypted')

如果你们发现这篇文章很有帮助,那么保存它,这样你就可以随时参考:shaush:。对于那些想了解更多关于PyPDF 2模块和功能的人,只需在下面的注释部分中推荐特定的区域(是否合并、拆分e.t.c)。

​​

需要完整代码:点这里即可

下载个PDF居然还要密码?想要密码就付费?这我能忍你!Python分分钟解密它!相关推荐

  1. 如何给PDF文件设置和取消打开密码

    工作中,我们经常会使用到PDF文件,因为它稳定又不容易被更改.对于重要的PDF文件,还可以设置打开密码,这样就双重保护了. 下面来说说如何给PDF文件设置和取消打开密码. 打开PDF文件需要PDF阅读 ...

  2. 西岛住宿软件测试,西岛踩坑记:寄存行李居然还要收费!听说要晋升5A,你觉得呢?...

    原标题:西岛踩坑记:寄存行李居然还要收费!听说要晋升5A,你觉得呢? 西岛一个历史很久远的三亚小岛,岛上在很久以前便开始有人居住,他们以捕鱼为生,以海为伴,因为距三亚很近,慢慢得被世人发现发现,后来有 ...

  3. 下载网页中不能下载的pdf

    我在工作中许多时候会遇到网页中的pdf需要下载,但却找到不到下载按钮,只能通过网页分析下载,遇见多了觉得比较麻烦,就想着写个浏览器插件会方便很多,我不是写前端的,所以插件有一些不足.也不能针对所有不能 ...

  4. Springboot使用itext及documents4j操作pdf(word转pdf、pdf加水印(文字或图片,可指定位置)、pdf加密(打开密码,编辑密码))

    pom.xml引入 <!-- pdf文档生成 --><dependency><groupId>com.documents4j</groupId>< ...

  5. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...

    在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载) 该主题的Part1- Part5系列文章已经陆续发表.为了感兴趣的朋友阅读方便,这里提供 ...

  6. 实现html下载为pdf时分页不切断table表格或者echarts图片

    html转换为canvas再下载为pdf的办法网上已经很多了,(我用的是两个插件一个js文件的那种办法,html2canvas,jspdf). 然而这种方法有个问题,如果我的图片中有表格或者图,并且分 ...

  7. 港中文大学计算机科学面试吗,听说过香港有需要面试的专业,但没想到这些居然还要笔试??...

    原标题:听说过香港有需要面试的专业,但没想到这些居然还要笔试?? Photo byRobert BakeronUnsplash 听说过香港有需要面试的专业,但没想到这些居然还要笔试?? 今天Cecil ...

  8. 带中文的网页下载为PDF格式的文件(jsPDF)

    1.调研 主要需要用到插件jsPDF,jsPDF可以将html下载为pdf格式的文件,但无法支持中文字形,下载带中文的网页会有乱码,经验证可以通过如下3种方案下载中文网页. 2.方案 2.1.方案一( ...

  9. 文件下载:从服务器上下载,自动给下载的PDF添加水印(一)

    javaweb 项目,前端页面点击下载指定文件,后端执行过程. 给文件添加水印方法的代码,放在下一篇:<给指定的PDF添加水印(二)> 从服务器文件下载,自动添加水印 一.从服务器文件下载 ...

最新文章

  1. 有没有哪些数学猜想是验证到很大的数以后才发现是错的?
  2. VTK:参数Kuen用法实战
  3. Jquery日历编写小练习
  4. Android之app引导页(背景图片切换加各个页面动画效果)
  5. Unknown column 'user_uid' in 'field list' sql错误解决过程
  6. python函数做n_简单Python函数的O(N)时间复杂性
  7. 风靡朋友圈的HTML5游戏去哪了
  8. movelast对数据记录数有要求吗_新颁布丨药品记录与数据管理要求(试行)解读...
  9. layui遇见的问题
  10. 一个MYSQL PDO相对完整且功能强大的封装类
  11. office word 2007快捷键大全
  12. Atitit 索引法 html文件转txt纯文本索引 适用于 evernote索引,导入imap邮箱,方便检索 /sumdoclist/src/aPkg/html2txtIndexFile.jav
  13. C++ 数组动态分配
  14. 华为悦盒ntp服务器地无显示,华为悦盒主时间同步服务器地址
  15. asp.net mvc 中使用async/await异步编程
  16. 计算机技术在生物学中的应用题库,2018年第二军医大学基础医学部816计算机在生物医学中的应用之生物化学考研基础五套测试题...
  17. android webview播放视频黑屏
  18. 编写简单的WDF驱动程序
  19. 2022-10-11 myql-exists子查询外表关联记录
  20. zMUD里的颜色触发

热门文章

  1. ucsd计算机科学,UCSD计算机科学博士排名,谨记得细致看
  2. 程慧:积极建旅游大数据 科学监管市场
  3. 队列 如何 判断 已满
  4. 无法完成请求,因为暂存盘已满怎么办?
  5. 分享2个优质牛肉干的挑选方法
  6. KISSY基础篇乄KISSY简介
  7. APC PowerChute Business Edition 安装中的vmware问题
  8. Windows10 内存占用过高怎么办并且持续增长,怎么办?
  9. SVN中tag和branch的区别
  10. 系统移植丨使用傲梅分区助手和EasyBCD迁移系统盘