PythonプロジェクトプログラムでCookie暗号化を設定するにはどうすればよいですか?

Python では、Cookie を設定することでユーザーに関する情報を保存および取得できます。ただし、Cookie にはユーザー ID やパスワードなどの機密情報が含まれるため、Cookie を保存および送信する際には暗号化と復号化が必要です。この記事では、Python プロジェクトで Cookie 暗号化を構成する方法について説明します。

ステップ 1: 必要なライブラリをインストールする

まず、Cookie 暗号化をサポートする 2 つの Python ライブラリ、pycryptodome と Base64 をインストールする必要があります。pip コマンドを使用して、これらのライブラリをターミナルにインストールできます。

pip install pycryptodome base64

ステップ 2: キーを生成する

次に、Cookie を暗号化および復号化するためのキーを生成する必要があります。次の Python コードを使用して、ランダムな 16 バイトのキーを生成できます。

import os
key = os.urandom(16)

ステップ 3: 暗号化関数と復号化関数を作成する

pycryptodome ライブラリの AES 暗号化アルゴリズムを使用して、Cookie を暗号化および復号化できるようになりました。以下は、AES アルゴリズムを使用して文字列を暗号化および復号化する単純な Python 関数です。

from Crypto.Cipher import AES
import base64

# 加密函数
def encrypt(key, plaintext):
    cipher = AES.new(key, AES.MODE_CBC)
    ciphertext = cipher.encrypt(plaintext)
    iv = base64.b64encode(cipher.iv).decode('utf-8')
    ciphertext = base64.b64encode(ciphertext).decode('utf-8')
    return iv + ':' + ciphertext

# 解密函数
def decrypt(key, ciphertext):
    iv, ciphertext = ciphertext.split(':')
    iv = base64.b64decode(iv)
    ciphertext = base64.b64decode(ciphertext)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    plaintext = cipher.decrypt(ciphertext)
    return plaintext.decode('utf-8')

この関数では、暗号化関数は AES アルゴリズムを使用して文字列を暗号化し、IV と暗号文を含む文字列を返します。IV は、暗号化および復号化時のランダム性のために使用される 16 バイトのランダム ベクトルです。復号化関数は、IV と暗号文を含む文字列を受け取り、AES アルゴリズムを使用して文字列を復号化します。

ステップ 4: 暗号化および復号化機能を使用する

最後に、Python プロジェクトでこれらの暗号化関数と復号化関数を使用して、Cookie を暗号化および復号化できます。ユーザー名とパスワードを含む辞書を暗号化し、Cookie に保存する簡単な例を次に示します。

from flask import Flask, request, make_response

app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(16)

# 加密函数
def encrypt(key, plaintext):
    # 与前面的代码一样

# 解密函数
def decrypt(key, ciphertext):
    # 与前面的代码一样

# 存储Cookie
@app.route('/setcookie')
def setcookie():
    username = request.args.get('username')
    password = request.args.get('password')
    data = {'username': username, 'password': password}
    ciphertext = encrypt(app.config['SECRET_KEY'], str(data))
    response = make_response('Set cookie!')
    response.set_cookie('data', ciphertext)
    return response

# 检索Cookie
@app.route('/getcookie')
def getcookie():
    ciphertext

次に、getcookie 関数の作成に進みます。この関数は、Cookie から暗号化されたデータを取得し、元のデータに復号化します。

@app.route('/getcookie')
def getcookie():
    ciphertext = request.cookies.get('data')
    data = decrypt(app.config['SECRET_KEY'], ciphertext)
    return data

この関数では、request.cookies.get 関数を使用して「data」という名前の Cookie を取得し、暗号文変数に格納します。次に、decrypt 関数を使用して暗号文を復号化し、復号化されたデータを data 変数に格納します。最後に、データをユーザーに返します。

要約する

この記事では、Python プロジェクトで Cookie 暗号化を構成する方法について説明しました。まず必要なライブラリをインストールし、次にキーを生成し、次に暗号化関数と復号化関数を記述し、最後にこれらの関数を使用して Cookie を暗号化および復号化する方法を示しました。Cookie の暗号化は機密情報を保護する効果的な方法であり、Python アプリケーションのセキュリティと信頼性を確保するのに役立ちます。

おすすめ

転載: blog.csdn.net/m0_72605743/article/details/129817530
おすすめ