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

dw制作网站教程百度标记号码认证平台

dw制作网站教程,百度标记号码认证平台,seo优化师培训,syntaxhighlighter wordpressPDF文档的加密和解密 文章目录 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.rdtb.cn/news/1521.html

相关文章:

  • wordpress恢复默认手机网站排名优化软件
  • 保定网站推广如何自己搭建一个网站
  • 学校网站推广策划书网络推广员工作好做吗
  • WordPress命令执行漏洞整站多关键词优化
  • 技术支持 中山网站建设模板网站如何建站
  • 用dw做网站首页百度超级链
  • 溧水区住房城乡建设局网站windows优化大师怎么用
  • 两个独立的wordpress用户优化关键词的作用
  • 网站添加白名单大数据营销推广精准粉
  • 中英文切换网站怎么做网络推广公司怎么找客户
  • 用微信怎么做企业网站百度怎么推广自己的网站
  • 网站建设与管理插图网络宣传的好处
  • 石材做网站细节seo短视频网页入口引流下载
  • 网站地址栏小图标商品标题优化
  • wordpress添加图标广州seo网站排名
  • 网站发展阿里云域名注册万网
  • 查询优惠券的网站如何做线上营销推广方案
  • 网站空间指的是什么意思网络营销属于什么专业类型
  • 网站csv导入运营培训
  • 可视化网站建设软件有哪些网站怎么弄
  • 做嫒嫒网站aso排名
  • 自建网站卖东西营销策划公司 品牌策划公司
  • 陕西省建设工程监理协会网站 查询网络seo
  • 安装网站程序要给那个目录设置权限淘宝店铺运营推广
  • 长沙网站seo推广公司seo提升排名
  • 医疗美容网站建设seo基础入门视频教程
  • 网站风格设定黑帽seo365t技术
  • 网站建设的cms系统汽车网站建设方案
  • 微网站模板标签免费域名申请网站大全
  • wordpress ftp 失败百度seo排名技术必不可少