概述
day 10 学习Python——python发邮件添加附件、暴力破密、加密、python操作PDF
一、Python发邮件添加附件
1、开启SMTP协议
import smtplib
1.发送人账号
sendAddress = '1784771776@qq.com'
2.发送人授权码(邮箱中的授权码等同于密码)
password = '授权码'
3.连通服务器
465端口就是发送邮件的端口
server = smtplib.SMTP_SSL('smtp.qq.com', 465)
print(server
4.登录
loginResult = server.login(sendAddress, password)
print(loginResult)
# (235, b'Authentication successful')
# 235响应成功状态码
# 构建能够添加附件的邮件
from email.mime.text import MIMEText
# 使用MIMEMultipart添加附件
from email.mime.multipart import MIMEMultipart
2、添加附件
1.定义一个可以添加正文和附件的邮件消息对象
msg是信息message的缩写
msg = MIMEMultipart()
# 构建发件人、收件人、邮件主题等
msg['From'] = '风继续吹<1784771776@qq.com>'
msg['To'] = '风继续吹<1784771776@qq.com>'
msg['Subject'] = 'Python自动发邮件'
2.构建正文
content = """
尊敬的用户:
美好的一天从学习开始哦!
"""
3.添加正文
使用attach()向能够添加多组件的MIMEMultipart中添加邮件组成部分
msg.attach(MIMEText(content, 'plain', 'utf-8'))
4.添加附件
先将附件使用二进制形式(字节)读取,再使用MIMEText方法进行规范化
# base64:最常用的字节传输方式
attachment_1 = MIMEText(open('1.jpg', 'rb').read(), 'base64', 'utf-8')
# 告知浏览器或邮件服务器这是字节流
attachment_1['Content-Type'] = 'application/octet-stream'
# 告知浏览器或邮件服务器这是一个名字叫做xxxx的邮件附件
# 这个名字不要出现中文,不同邮箱对待中文的方式不一样
attachment_1['Content-Disposition'] = 'attachment;filename="1.jpg"'
msg.attach(attachment_1)
# attachment_2 = MIMEText(open('管理员.jpeg', 'rb').read(), 'base64', 'utf-8')
# attachment_2['Content-Type'] = 'application/octet-stream'
# attachment_2['Content-Disposition'] = 'attachment;filename="admin.jpeg"'
# msg.attach(attachment_2)
5.发送邮件
To = ['1784771776@qq.com']
server.sendmail(sendAddress, To, msg.as_string())
print('发送成功')
二、Python暴力破解密码
如何使用python暴力破解“密码”。
[^]:
1、“密码”破解应用
python破解wifi密码:拿到一个有密码的压缩包,但是不知道压缩包密码,可以尝试使用python破解。拿到一个有密码的压缩包,但是不知道压缩包密码,可以尝试使用python破解等等
暴力破解:穷举法
二、“密码”的组合
数字、字母、标点符号:
在ASCII码表中数字、字母、标点符号组合起来大概几十个符号。
个别网站可能还允许使用汉字作为密码。
采取大众化的形式尽可能的跑密码(排列组合穷举)
3、“密码”的长度
Wifi要求密码最低也是长度为8位的密码
他的密码要求均不一致,只能按照比较普遍的形式进行密码设置
我们将密码的长度粗略的划分到4-11位
4、确认
密码使用数字和字母
长度位4-11位
涉及到排列组合穷举法
from itertools import product
list1 = [chr(i) for i in range(48, 58)]
list2 = [chr(i) for i in range(65, 91)]
list3 = [chr(i) for i in range(97, 123)]
newList = list1 + list2 + list3
print(newList)
# 2.指定长度范围
for lenght in range(4, 12):#丛4位开始试到11位
# 3.开始生成“密码”
# product(字符串容器,repeat=长度)
for i in product(newList, repeat=lenght):#在生成的密码长度中取元素
result = ''.join(i)
print(result)
三、python操作PDF
1、python操作PDF——水印加密
PyPDF2模块操作PDF整体思想:从源文件中读,对读出来的数据做的一系列操作都放入新的PDF文件
import PyPDF2
1.读取PDF
reader1 = PyPDF2.PdfReader('./PDF素材/水印.pdf')
print(reader1)
2.创建一个空白的PDF写方法
writer1 = PyPDF2.PdfWriter()
3.获取原来的PDF总页数
pages = reader1.getNumPages()
4.分别将每一页PDF遍历
for i in range(pages):
# 通过下标指定第几页,将此页添加到空白的PDF中
writer1.addPage(reader1.pages[i])
5.加密操作:encrypt()
writer1.encrypt('013')
6.将PDF写入指定文件再保存关闭
将指定文件使用二进制写模式打开,w:如果文件不存在,自动创建新的,如果文件存在,清空内容再写入
f = open('水印(加密版).pdf', 'wb')
# 将PDF写入到文件f中
writer1.write(f)
# 保存关闭
f.close()
2、python操作PDF——水印解密
import PyPDF2
reader1 =PyPDF2.PdfReader('水印(加密版).pdf')
# 判断读出来的信息是否为加密信息:is-encrypted
print(reader1.isEncrypted)
# 解密
if reader1.isEncrypted:
#使用decrypt()和加密的密码进行解密
reader1.decrypt('013')
# 创建空白的PDF写方法
writer1 = PyPDF2.PdfWriter()
# 从读出来的PDF中读取每一页
for i in range(reader1.getNumPages()):
# 将PDF的每一页添加到写方法中
writer1.addPage(reader1.pages[i])
# 将PDF保存,关闭
f = open('水印(解密版).pdf', 'wb')
writer1.write(f)
f.close()
3、python操作PDF——读取PDF内容
PDF中图片上的文字应该如何读取
1.截图、文字识别。 —> OCR光学文字识别
Python中涉及到的光学文字
EasyOCR
模块、百度的飞桨、百度AI开发者平台等N多个OCR模块可以供python选择。
import PyPDF2
# PyPDF2不能读取PDF中图片上的文字
reader1 = PyPDF2.PdfReader('./PDF素材/001-Python环境安装.pdf')
# 一页一页的读
for i in range(reader1.getNumPages()):
# 根据下表指定页面
page = reader1.pages[i]
# 将PDF每一页的内容`读取:extract_text()
content =page.extract_text()
print(content,type(content))
4、python操作PDF——添加水印
import PyPDF2
# 分别读取需要加水印的PDF和水印PDF模版
reader1 = PyPDF2.PdfReader('./PDF素材/001-Python认知.pdf')
water = PyPDF2.PdfReader('./PDF素材/水印.pdf')
writer1 = PyPDF2.PdfWriter()
for i in range(reader1.getNumPages()):
page = reader1.pages[i]
waterPage = water.pages[0]
# 两个页面融合:mergePage()
page.mergePage(waterPage)
# 将添加了水印的页面添加到PDF写操作中
writer1.addPage(page)
f = open('001-Python认知(水印版).pdf', 'wb')
writer1.write(f)
f.close()
5、python操作PDF——两个PDF合并
1.创建空白文件
import PyPDF2
writer= PyPDF2.PdfWriter()
2.准备文件
file = ['001-Python环境安装.pdf','002-Pycharm安装.pdf']
for i in file:
filePath = f'./PDF素材/{i}'
reader= PyPDF2.PdfReader(filePath)
for i in range(reader.getNumPages()):
page = reader.pages[i]
writer.addPage(page)
# 保存到新的文件
f= open('合并.pdf', 'wb')
writer.write(f)
f.close()
最后
以上就是谦让犀牛为你收集整理的day 10 学习Python——python发邮件添加附件、暴力破密与加密、python操作PDF的全部内容,希望文章能够帮你解决day 10 学习Python——python发邮件添加附件、暴力破密与加密、python操作PDF所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复