前言

事情是这样的

520晚上,正跟队友 啪啪啪 组团开黑

突然,微信上前女友的头像跳动了起来

快一年了,难道是想要复合?

发来的竟是一个 " 520快乐.pdf " 的加密文件

想复合就直说嘛

干嘛还要搞的这么有情趣,让我破解

伴随着我队友刺耳的骂街声

我平静而果断的的退出了游戏

撸出了,我的python代码。。。

明确需求

1、根据对前女友的了解,密码为4位纯数字。(代码中可以自定义代码生成函数,生成各种组合的密码,进行破解)

2、520快乐.pdf 如下 ↓ ↓ ↓ 加密了打不开

安装pdf工具模块

pip install PyPDF2

PS D:\> pip install PyPDF2
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Collecting PyPDF2Downloading http://mirrors.aliyun.com/pypi/packages/b4/01/68fcc0d43daf4c6bdbc6b33cc3f77bda531c86b174cac56ef0ffdb96faab/PyPDF2-1.26.0.tar.gz (77 kB)|████████████████████████████████| 77 kB 919 kB/s
Using legacy 'setup.py install' for PyPDF2, since package 'wheel' is not installed.
Installing collected packages: PyPDF2Running setup.py install for PyPDF2 ... done
Successfully installed PyPDF2-1.26.0
PS D:\>

如何给pdf加密码?

要想破解加密的pdf文件,就要知道如何给pdf加密。可以通过PyPDF2模块,给pdf加密。

代码如下:

import PyPDF2
#加密PDF
def encrypt(old_Path, new_Path):""":param old_Path: 待加密文件的路径名:param new_Path: 加密之后的文件路径名"""with open(old_Path, 'rb') as pdfFile: pdfReader = PyPDF2.PdfFileReader(pdfFile)# 创建pdfWriter对象用于写出PDF文件pdfWriter = PyPDF2.PdfFileWriter()# pdf对象加入到pdfWriter对象中for pageNum in range(pdfReader.numPages):pdfWriter.addPage(pdfReader.getPage(pageNum))# 密码设置为8888pdfWriter.encrypt('8888')with open(new_Path, 'wb') as resultPDF:pdfWriter.write(resultPDF)print('加密成功!')

如何破解加密pdf文件

1、生成四位数纯数字密码的方法

你可以根据需求,自己定义密码的位数,这里只定义4位纯数字密码

#你可以根据需求,自己定义密码的位数,这里只定义4位纯数字密码
for i in range(10000):#生成四位数密码pwd=str(i).zfill(4)print(pwd)

2、破解pdf函数代码

引用pypdf2模块,调用pdfReader.decrypt(‘密码’),通过不停的遍历我们生成的密码。

破解密码函数 如下:

def decrypt(old_Path, new_Path):""":param old_Path: 待加密文件的路径名:param new_Path: 加密之后的文件路径名"""with open(old_Path, 'rb') as pdfFile:pdfReader = PyPDF2.PdfFileReader(pdfFile)pdfWriter = PyPDF2.PdfFileWriter()# 判断文件是否加密if pdfReader.isEncrypted:# 判断密码是否正确for i in range(10000):#生成四位数密码pwd=str(i).zfill(4)if pdfReader.decrypt(pwd):for pageNum in range(pdfReader.numPages):pdfWriter.addPage(pdfReader.getPage(pageNum))with open(new_Path, 'wb') as resultFile:pdfWriter.write(resultFile)print('成功了!密码是:'+pwd)else:print('密码错了!哼~~~')else:print('没有加密呀~~~')

开始破解

代码已经准备好,下面,我们正式开始破解~~~

效果如下 ↓ ↓ ↓

几秒之后,密码破解成功。

emmm ,密码居然是 1314

完整代码

from os import error
import PyPDF2
#加密PDF
def encrypt(old_Path, new_Path):""":param old_Path: 待加密文件的路径名:param new_Path: 加密之后的文件路径名"""with open(old_Path, 'rb') as pdfFile: pdfReader = PyPDF2.PdfFileReader(pdfFile)# 创建pdfWriter对象用于写出PDF文件pdfWriter = PyPDF2.PdfFileWriter()# pdf对象加入到pdfWriter对象中for pageNum in range(pdfReader.numPages):pdfWriter.addPage(pdfReader.getPage(pageNum))# 密码设置为8888pdfWriter.encrypt('8888')with open(new_Path, 'wb') as resultPDF:pdfWriter.write(resultPDF)print('加密成功!,')def decrypt(old_Path):""":param old_Path: 待加密文件的路径名:param new_Path: 加密之后的文件路径名"""with open(old_Path, 'rb') as pdfFile:pdfReader = PyPDF2.PdfFileReader(pdfFile)# 判断文件是否加密if pdfReader.isEncrypted:# 判断密码是否正确for i in range(10000):#生成四位数密码pwd=str(i).zfill(4).replace(' ','')print(pwd)try:pdfReader.decrypt(pwd)except:print('密码不对,哼~~~')else:print('成功了!密码是:'+pwd)breakelse:print("没有密码哦~")
if __name__ == '__main__':#给pdf加密#encrypt('E:/520快乐.pdf','E:/520快乐2.pdf')#给pdf解密,我们尝试 4位数的密码decrypt('E:/520快乐.pdf')

故事结尾

密码居然是1314

让我有点不知所措呢

迫不及待的打开 “520快乐.pdf”

啪啪啪

欢快的输入破解出的密码 1314

----The End----

读者福利:如果你喜欢编程,那这套python学习资料一定对你有用,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

520晚上,我用python破解了前女友发来的加密pdf文件,结果却发现...相关推荐

  1. Python:使用pypdf2合并、分割、加密pdf文件。

    朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录.首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库. ...

  2. 520晚上,我用python破解了前女友的加密文件,结果却发现。。。

    大家好,我是Lex 喜欢欺负超人那个Lex 520收到前女友发来的加密PDF文件,说打开之后有惊喜,难道是要复合? 我用python破解开之后,却发现... 划重点:1.如何使用python给pdf设 ...

  3. 前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现。。。

    大家好,我是Lex 喜欢欺负超人那个Lex 520收到前女友发来的加密PDF文件,说打开之后有惊喜,难道是要复合? 我用python破解开之后,却发现... 划重点:1.如何使用python给pdf设 ...

  4. 彻底破解加密PDF文件

    PDF加密.解密内幕(三) -破解加密PDF文件 1 一般的口令验证 我想很多人在学习某个技术或者其它之前总会想想如果换作自己来设计会怎么办,比如说PDF文件的解密,我就会想,文件内容是经过加密的,那 ...

  5. 双十一,程序员前女友发来消息。。。

    故事发生在双11前 久久不联系,朋友圈常年屏蔽的前女友 突然发来微信 突!然!发!来!信!息!! 就此 一位戏精程序员与前女友大戏拉开帷幕 究竟谁才是戏精王? 前女友?程序员? 是自我加戏,还是欲擒故 ...

  6. python使用FPDF包将多个图像文件写入pdf文件实战

    python使用FPDF包将多个图像文件写入pdf文件实战 目录 python使用FPDF包将多个图像文件写入pdf文件实战 #FPDF包安装

  7. 破解加密PDF文件pdfcrack

    破解加密PDF文件pdfcrack PDF是常见的文档格式.它允许用户设置双重密码来保护文档.第一重是用户密码(user password),当打开PDF文档,输入该密码.第二重是所有者密码(ower ...

  8. python常用库 自动化办公类 —— PyPDF2(处理pdf文件)

    python常用库 自动化办公类 -- PyPDF2(处理pdf文件) 摘要 PyPDF库的安装 PyPDF库的常用功能 文字提取 合并pdf文件 旋转pdf页面 pdf文件加密 摘要 本文主要介绍了 ...

  9. python学习的第二十五天:对PDF文件的读写操作

    文章目录 python学习的第二十五天:对PDF文件的读写操作 对Excel操作的补充 python的实用方法 获取指定文件下的所有内容 shutil模块(封装了高级的文件操作函数) PDF的相关操作 ...

最新文章

  1. WinAPI: 输入光标相关的函数[3]
  2. 支持量子机器学习,王海峰发布最新百度飞桨全景图
  3. 基于感知能力的点云实例分割
  4. cmd mysql 报错_客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案
  5. oracle expdp/impdp exclude=STATISTICS
  6. python自动化_Python报表自动化
  7. php读取excel中数据库,ThinkPHP 框架实现的读取excel导入数据库操作示例
  8. java 8 lambda sort_Java8 用Lambda表达式给List集合排序的实现|chu
  9. Lombok@Builder和@NoArgsConstructor冲突
  10. 红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器
  11. 2. sales quote merge before
  12. 为什么我keepalive配置的vip不能通_企业十大应用-Keepalived-配置详解
  13. 2分钟教你部署2048小游戏到云服务器
  14. 信号与系统 徐亚宁 matlab程序,信号与系统分析 [徐亚宁,李和主编] 2010年版
  15. RT-Thread定时器
  16. Spring @Transactional注解出错:CglibAopProxy - Unable to apply any optimisations to advised method
  17. PXC 避免加入集群时发生SST
  18. CloudCore引领核心网云化转型
  19. rsync守护进程部署
  20. java纯真ip数据库_java实现对纯真IP数据库的查询

热门文章

  1. 花生壳和神卓互联的NAT产品为什么没有其它公司做出来(分析很到位)
  2. azkaban简介及azkaban部署、原理和使用介绍
  3. 《UC-Net:Uncertainty Inspired RGB-D Saliency Detection via Conditional Variational Autoencoders》论文笔记
  4. Mybatis运行原理源码分析
  5. 关于电路设计中的差分信号
  6. 生的伟大,死得凄凉!
  7. linux 函数返回string,linux 下c函数strcmp的返回值疑问?
  8. 个性化定制企业管理系统对企业来说有什么优势?
  9. GOOGLE西联快汇农行取钱全过程
  10. 短信微服务(用户注册)