我是靠谱客的博主 谦让犀牛,最近开发中收集的这篇文章主要介绍day 10 学习Python——python发邮件添加附件、暴力破密与加密、python操作PDF,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部