7、密码管理器 这个自动化脚本可以帮助你管理所有密码,使它们既安全又只有你能访问,使用不同的加密技术。
# 导入所需的库
import streamlit as st
import csv
from cryptography.fernet import Fernet
from cryptography.fernet import InvalidToken
# 自定义加密密钥(硬编码)
CUSTOM_ENCRYPTION_KEY = b'u7wGgNdDFefqpr_kGxb8wJf6XRVsRwvb3QgITsD5Ft4='
# 如果您计划在共享平台上使用此脚本,请确保将此密钥保存在一个单独的安全文件中。
# 函数用于加密密码
def encrypt_password(password):
cipher_suite = Fernet(CUSTOM_ENCRYPTION_KEY)
encrypted_password = cipher_suite.encrypt(password.encode()) # 将密码编码后加密
return encrypted_password
# 函数用于解密密码
def decrypt_password(encrypted_password):
if isinstance(encrypted_password, bytes): # 检查加密密码是否为bytes类型
try:
cipher_suite = Fernet(CUSTOM_ENCRYPTION_KEY)
decrypted_password = cipher_suite.decrypt(encrypted_password) # 解密
return decrypted_password.decode() # 将bytes解码为字符串
except InvalidToken:
return "Invalid Token" # 若密钥不正确,返回无效令牌信息
else:
return None
# 函数用于将网站名和密码保存到CSV文件
def save_credentials(website_name, password):
encrypted_password = encrypt_password(password) # 先加密密码
with open('credentials.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([website_name, encrypted_password.decode()]) # 将加密后的密码解码为字符串后存储
# 函数用于从CSV文件检索密码
def retrieve_password(website_name):
with open('credentials.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
if row[0] == website_name:
encrypted_password = row[1].encode() # 重新编码为bytes
return encrypted_password
return None
# 使用Streamlit创建Web界面
st.title("密码管理器")
# 输入字段用于输入网站名和密码
website_name = st.text_input("输入网站名:")
password = st.text_input("输入密码:", type="password")
# 保存按钮用于保存网站名和密码
if st.button("保存"):
if website_name and password:
save_credentials(website_name, password)
st.success("网站名和密码已成功保存。")
else:
st.error("请填写所有字段。")
# 检索按钮用于检索密码
if st.checkbox("检索密码"):
website_name = st.selectbox("选择网站名:", options=[""] + [row[0] for row in csv.reader(open('credentials.csv', 'r'))])
key = st.text_input("输入您的加密密钥:", type="password")
if st.button("检索密码"):
if key == str(CUSTOM_ENCRYPTION_KEY.decode()):
if website_name:
encrypted_password = retrieve_password(website_name)
if encrypted_password:
decrypted_password = decrypt_password(encrypted_password)
st.success(f"网站**{website_name}** 的密码 -> **{decrypted_password}**")
else:
st.error("数据库中未找到密码。")
elif key == "":
pass
else:
st.error("无效的加密密钥!")
8、批量邮件发送器 这个自动化脚本利用 Gmail 自己的 SMTP 服务器发送批量电子邮件,仅需几分钟,允许你完全自定义并掌控。
# 导入smtplib库用于邮件传输
import smtplib
# 导入ssl库用于建立安全的连接
import ssl
# SMTP服务器的详细信息
smtp_server = 'smtp.gmail.com' # 使用的Gmail的SMTP服务器地址
smtp_port = 465 # 使用的端口号,Gmail的SSL端口是465
# 发送者和接收者的详细信息
from_address = 'yuhualong Shop' # 发件人地址或名称
to_address = ['', ''] # 接收者列表,可以添加多个接收邮箱地址
# 认证信息
username = '' # 发件人的邮箱账号
password = '' # 发件人的邮箱密码
# 邮件内容的详细信息
subject = '🎉 独家优惠!您下次购物可享受10%的折扣'
body = '''\
亲爱的顾客,
作为我们尊贵的客户,为了表达我们的感激之情,我们为您的下次购买提供了一项独家折扣。在结账时使用下面的优惠码,您可以享受订单10%的折扣:
优惠码:DISCOUNT888
无论您是在寻找时尚的服饰、潮流的配饰还是高质量的产品,现在是购物并节省开支的最佳时机!探索我们的最新系列,并给自己买些特别的东西。抓紧时间!此优惠仅限时有效。不要错过节省您最爱物品的机会。
立即购物:https://xyz.com
感谢您选择yuhualong Shop。我们期待着不久再次为您服务!
最好的祝福,
yuhualong Shop
'''
# 创建一个SSL/TLS的上下文环境
context = ssl.create_default_context()
# 使用SSL/TLS通过SMTP服务器连接
with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as server:
# 启用调试级别,打印服务器的响应信息
server.set_debuglevel(1)
# 登录SMTP服务器
server.login(username, password)
# 创建电子邮件消息
message = f'From: {from_address}\r\nSubject: {subject}\r\nTo: {", ".join(to_address)}\r\n\r\n{body}'
message = message.encode() # 将消息转换为字节格式
# 发送邮件
server.sendmail(from_address, to_address, message)