当前位置: 首页 > news >正文

dw制作网站教程百度投诉中心24人工客服

dw制作网站教程,百度投诉中心24人工客服,网站建设十佳,广州冼村街道办事处电话PDF文档的加密和解密 文章目录 PDF文档的加密和解密前言一、总体构思二、使用到的库三、PDF文档的加密1.用户输入模块2.打开并读取文档数据3.遍历保存数据到新文档4.新文档进行加密5.新文档命名生成路径6.保存新加密的文档 四、PDF文档的解密1.用户输入模块2.前提准备2.文件解密…

PDF文档的加密和解密


文章目录

  • PDF文档的加密和解密
  • 前言
  • 一、总体构思
  • 二、使用到的库
  • 三、PDF文档的加密
    • 1.用户输入模块
    • 2.打开并读取文档数据
    • 3.遍历保存数据到新文档
    • 4.新文档进行加密
    • 5.新文档命名+生成路径
    • 6.保存新加密的文档
  • 四、PDF文档的解密
    • 1.用户输入模块
    • 2.前提准备
    • 2.文件解密与保存
  • 总结


前言

这篇我没有放到专栏《Python 自动化》。因为市面上文档的加解密功能几乎是免费的,而且功能很全面。
所以,这个关于Python的PDF文档加解密看着一乐就行,日常工作用不到也不会用这个去搞。

建议各位看这个之前先去看一下我之前写的两篇,要不然下面的可能会看的云里雾里。

https://blog.csdn.net/weixin_57061292/article/details/134790966?spm=1001.2014.3001.5502
https://blog.csdn.net/weixin_57061292/article/details/134817121?spm=1001.2014.3001.5502


一、总体构思

下面我会分成两部分进行编写,先是加密文档,后是解密文档。

二、使用到的库

代码如下:

import sys
import PyPDF2
import itertools
import time

加解密总共需要引入这些库,这是前提。


三、PDF文档的加密

1.用户输入模块

代码如下:

# 用户输入要加密的PDF文件
print('请输入pdf文档完整路径(例子:E:\BaiduNetdiskDownload\你好.pdf):', end='')
pdf_path = input())

这里提示用户输入要加密的PDF文档。


2.打开并读取文档数据

代码如下:

#以二进制形式打开文档
open_pdf = open(pdf_path, 'rb')#读取文档的数据
read_pdf = PyPDF2.PdfReader(open_pdf)#获取文档的总页数
get_pdf_pages = len(read_pdf.pages)

PDF文档操作之前经常要准备的三件套哈。


3.遍历保存数据到新文档

代码如下:

# 创建一个新的PDF文件以保存加密后的文档
pdf_out = PyPDF2.PdfWriter()# 遍历源PDF的每一页,并将它们添加到新的PDF中
for get_pdf_page in range(get_pdf_pages):page = read_pdf.pages[get_pdf_page]pdf_out.add_page(page)

代码注释写的很清楚了,我就不赘述了


4.新文档进行加密

代码如下:

#提示用户输入密码
print('请输入密码:', end='')
password = str(input())# 应用加密
pdf_out.encrypt(password)

这就是这个的加密过程。。。


5.新文档命名+生成路径

代码如下:

# 获取用户输入的文件名,不包括路径
pdf_file_name = pdf_path.split('\\')[-1]  # 使用 \\
pdf_base_name = pdf_file_name.split('.')[0]  # 去掉扩展名# 指定保存 .pdf 文件的完整路径和名称
output_dir = "D:/"  # 替换为您的实际输出目录
output_file_name = f"{pdf_base_name}_加密.pdf"
output_path = output_dir + output_file_name

第一块代码是保留下来源文件的名称。
第二块代码是给新文件指明要保存到哪个路径。


6.保存新加密的文档

代码如下:

#保存文档
pdf_out.write(output_path)#结束函数的调用
pdf_out.close()print('加密好了,快去看一下吧。')

最后程序会print一下,这个出来了就表明加密成功了。

加密文档到这里就结束了,下面是解密文档。


四、PDF文档的解密

这个解密文档,我稍微添加了一些自己的想法。

除了让用户输入要解密的文档,还有要求输入要解密到几位数的密码(比如用户输入5,程序会把从1位数到5位数的密码都试一遍)。

1.用户输入模块

代码如下:

# 用户输入加密的PDF文件
print('请输入pdf文档完整路径(例子:E:\BaiduNetdiskDownload\你好.pdf):', end='')
pdf_path = input()# 输入密码可能最大的长度
print('请输入输入密码可能最大的长度:', end='')
len_passwd = int(input())# 用于破解密码的密码库
passwd_bank = '1111111'

最后一行是密码库,大家可以自行添加进行测试。


2.前提准备

代码如下:

with open(pdf_path, 'rb') as fh:pdf = PyPDF2.PdfReader(fh)

这里要先声明好用法,下面会用上。


2.文件解密与保存

代码如下:

start_time = time.time()
for i in range(len_passwd):i += 1for passwd in itertools.permutations(passwd_bank, r=i):guess_passwd = ''.join(passwd)pdf.decrypt(guess_passwd)try:# 这里是可能会出错的代码,密码不对会报错page = pdf.pages[0]if page.extractText() == '1':print(f"密码正确,这是{i}位数的: {guess_passwd}")stop_time = time.time()print(f'共用时{stop_time - start_time}秒。')#保存文档到与加密文档一样的目录with open('passwords.txt', 'w') as f:f.write(guess_passwd)#退出整个程序    sys.exit()except Exception:# 当出现类型的错误时执行这里的代码passelse:print(f"{i}位数的密码已试完。")

简单给大家说一下吧。
首先,最外层的for循环的作用是让密码从1位数跑到用户设置的X位数。
其次,中间那层for循环就是密码是1位数的时候,全部1位数的密码都跑一遍,直至跑到用户设置的X位数。
然后,最里层的try—except结构作用是保证程序在报错的时候也可以持续试密码。因为密码不对的时候程序会报错。
最后,剩下的就是把文件保存与加密文档一样的目录,打印一条信息告诉你搞定了。

这块要是还不怎么懂,可以先看一下我这篇博客,关于破解密码小程序的东西。
https://blog.csdn.net/weixin_57061292/article/details/134719727?spm=1001.2014.3001.5502


总结

大致就是这些东西,东西不多,希望对大家有所帮助吧。
在这里插入图片描述

http://www.dinnco.com/news/24118.html

相关文章:

  • 温州网站运营网络优化有前途吗
  • 广州app开发费用搜索引擎营销优化
  • 涟源爱沫私人电影院商丘搜索引擎优化
  • 学做漂亮早餐的网站免费推广链接
  • 网站 网安备案海南seo代理加盟供应商
  • 深圳有限公司官网seo排名策略
  • 武汉交友什么网站建设智慧营销系统平台
  • 商品网站建设实验格式可视化网页制作工具
  • 亚马逊网站建设做什么网站搭建软件
  • 泉州做网站的太原seo自媒体
  • vip解析网站怎么做国外搜索引擎排名百鸣
  • 如何用文档做网站如何创建自己的网址
  • 丹阳做网站的百度一下官方网页版
  • 电商网站开发详细介绍福州短视频seo推荐
  • 那里可以做app网站佛山百度网站快速排名
  • 电子商务网站开发报价bt种子万能搜索神器
  • 政府网站 建设方案品牌推广的方式有哪些
  • 网站地图定位怎么做代发百度帖子包收录排名
  • 深圳建设网站制作win10优化大师有用吗
  • 网页网站怎么做百度云网页版入口
  • 移动应用开发难学吗泉州seo技术
  • 网站建站视频教程关键词批量调词软件
  • 太原网站建设培训江苏seo和网络推广
  • 做网站设计可以参照别人的么百度经验实用生活指南
  • 网站开发外包合同模板网络软文是什么意思
  • 网站 目录访问输入关键词搜索
  • wordpress+编辑器回车宁波品牌网站推广优化
  • 集团网站建设运营公司今日最新抗疫数据
  • 网站建设的特点百度关键词投放
  • 网页设计师培训课程多少钱seo服务优化