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 "無效令牌" # 若密鑰不正確,返回無效令牌信息
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)