banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

令人震驚的Python自動化腳本,你必須嘗試(4)

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("無效的加密密鑰!")

image

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)
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。