下载个PDF居然还要密码?想要密码就付费?这我能忍你!Python分分钟解密它!
概叙
今天因为需要用到一个参考文档,然后在网上找了一下,就下载了一个pdf文档!下载之后居然是加密的,如果要密码就要给钱?我这暴脾气,还真不能忍你!
想收我得钱,不存在的,接下来就是破解过程了!
说句题外话,为什么现在越来越多的文档都是PDF格式呢?因为它是可移植文档格式(PDF)是在线附件中使用最广泛的文件格式之一。
大多数文档,例如电子书、扫描文档等,都使用这种pdf格式进行存储和共享。
为了在各种平台和媒体上共享,文档面临着许多威胁,例如信息泄漏和未经授权的个人访问。因此,一个人必须对他/她的文件进行加密,以防止这种可以避免的事件和暴露。
Python是一种足智多谋的编程语言,它提供了一个非常棒的模块,称为PyPDF2
对pdf文件进行加密和解密,从而增强所包含信息的安全性。
PyPDF 2库能够:
- 提取文件信息,例如标题、页码等。
- 拆分和合并文档。
- 裁剪页面。
- 加解密。
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分分钟解密它!相关推荐
- 如何给PDF文件设置和取消打开密码
工作中,我们经常会使用到PDF文件,因为它稳定又不容易被更改.对于重要的PDF文件,还可以设置打开密码,这样就双重保护了. 下面来说说如何给PDF文件设置和取消打开密码. 打开PDF文件需要PDF阅读 ...
- 西岛住宿软件测试,西岛踩坑记:寄存行李居然还要收费!听说要晋升5A,你觉得呢?...
原标题:西岛踩坑记:寄存行李居然还要收费!听说要晋升5A,你觉得呢? 西岛一个历史很久远的三亚小岛,岛上在很久以前便开始有人居住,他们以捕鱼为生,以海为伴,因为距三亚很近,慢慢得被世人发现发现,后来有 ...
- 下载网页中不能下载的pdf
我在工作中许多时候会遇到网页中的pdf需要下载,但却找到不到下载按钮,只能通过网页分析下载,遇见多了觉得比较麻烦,就想着写个浏览器插件会方便很多,我不是写前端的,所以插件有一些不足.也不能针对所有不能 ...
- Springboot使用itext及documents4j操作pdf(word转pdf、pdf加水印(文字或图片,可指定位置)、pdf加密(打开密码,编辑密码))
pom.xml引入 <!-- pdf文档生成 --><dependency><groupId>com.documents4j</groupId>< ...
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载) 该主题的Part1- Part5系列文章已经陆续发表.为了感兴趣的朋友阅读方便,这里提供 ...
- 实现html下载为pdf时分页不切断table表格或者echarts图片
html转换为canvas再下载为pdf的办法网上已经很多了,(我用的是两个插件一个js文件的那种办法,html2canvas,jspdf). 然而这种方法有个问题,如果我的图片中有表格或者图,并且分 ...
- 港中文大学计算机科学面试吗,听说过香港有需要面试的专业,但没想到这些居然还要笔试??...
原标题:听说过香港有需要面试的专业,但没想到这些居然还要笔试?? Photo byRobert BakeronUnsplash 听说过香港有需要面试的专业,但没想到这些居然还要笔试?? 今天Cecil ...
- 带中文的网页下载为PDF格式的文件(jsPDF)
1.调研 主要需要用到插件jsPDF,jsPDF可以将html下载为pdf格式的文件,但无法支持中文字形,下载带中文的网页会有乱码,经验证可以通过如下3种方案下载中文网页. 2.方案 2.1.方案一( ...
- 文件下载:从服务器上下载,自动给下载的PDF添加水印(一)
javaweb 项目,前端页面点击下载指定文件,后端执行过程. 给文件添加水印方法的代码,放在下一篇:<给指定的PDF添加水印(二)> 从服务器文件下载,自动添加水印 一.从服务器文件下载 ...
最新文章
- 有没有哪些数学猜想是验证到很大的数以后才发现是错的?
- VTK:参数Kuen用法实战
- Jquery日历编写小练习
- Android之app引导页(背景图片切换加各个页面动画效果)
- Unknown column 'user_uid' in 'field list' sql错误解决过程
- python函数做n_简单Python函数的O(N)时间复杂性
- 风靡朋友圈的HTML5游戏去哪了
- movelast对数据记录数有要求吗_新颁布丨药品记录与数据管理要求(试行)解读...
- layui遇见的问题
- 一个MYSQL PDO相对完整且功能强大的封装类
- office word 2007快捷键大全
- Atitit 索引法 html文件转txt纯文本索引 适用于 evernote索引,导入imap邮箱,方便检索 /sumdoclist/src/aPkg/html2txtIndexFile.jav
- C++ 数组动态分配
- 华为悦盒ntp服务器地无显示,华为悦盒主时间同步服务器地址
- asp.net mvc 中使用async/await异步编程
- 计算机技术在生物学中的应用题库,2018年第二军医大学基础医学部816计算机在生物医学中的应用之生物化学考研基础五套测试题...
- android webview播放视频黑屏
- 编写简单的WDF驱动程序
- 2022-10-11 myql-exists子查询外表关联记录
- zMUD里的颜色触发