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()
# SMTPサーバーを介してSSL/TLSで接続
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)