Pythonは多くのライブラリとモジュールを持っており、その中には暗号化とエンコーディングのためのものも含まれています。この記事では、PythonでAES暗号化とBase64エンコーディングを使用する方法について説明します。

AES暗号化とは

AES(Advanced Encryption Standard)は、共通鍵暗号化の一種で、データの保護に広く使用されています。Pythonでは、Crypto.CipherモジュールのAESクラスを使用してAES暗号化を行うことができます。

Base64エンコーディングとは

Base64は、バイナリデータをASCII文字列に変換するエンコーディング方式です。Pythonでは、base64モジュールを使用してBase64エンコーディングを行うことができます。

PythonでのAES暗号化とBase64エンコーディングの使用例

以下に、PythonでAES暗号化とBase64エンコーディングを使用する例を示します。

from base64 import b64encode, b64decode
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes

# 鍵の作成
def create_key():
    key = get_random_bytes(16)
    return b64encode(key).decode('utf-8')

# 暗号化する
def encrypt(key, data):
    key = b64decode(key)
    data = bytes(data, 'utf-8')
    cipher = AES.new(key, AES.MODE_CBC)
    ct_bytes = cipher.encrypt(pad(data, AES.block_size))
    iv = b64encode(cipher.iv).decode('utf-8')
    ct = b64encode(ct_bytes).decode('utf-8')
    return ct, iv

# 復号化する
def decrypt(key, iv, ct):
    key = b64decode(key)
    iv = b64decode(iv)
    ct = b64decode(ct)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    pt = unpad(cipher.decrypt(ct), AES.block_size)
    return pt.decode('utf-8')

password = 'password'
# 新しい鍵の作成
key = create_key()
# 新しい鍵のprint
print(key)
# 暗号化する
ct, iv = encrypt(key, password)
# 暗号化したパスワードのprint
print(ct)
# hash値のprint
print(iv)
# 復号化する
pt = decrypt(key, iv, ct)
# 結果確認のため、復号したものをprint
print(pt)

このコードは、新しい鍵を作成し、その鍵を使用してパスワードを暗号化し、その後で暗号化されたパスワードを復号化するという流れを示しています。

以上がPythonでAES暗号化とBase64エンコーディングを使用する方法の一例です。Pythonの豊富なライブラリとモジュールを活用することで、さまざまな暗号化とエンコーディングのタスクを簡単に実行することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です