Cryptographyライブラリを使ったデータの暗号化 – Pythonで始めるプログラミング

Cryptographyライブラリを使ったデータの暗号化 – Pythonで始めるプログラミング

データを安全に保つために、暗号化は非常に重要です。Pythonでは、Cryptographyライブラリ(外部リンク)を使用して簡単にデータを暗号化および復号化することができます。

Cryptographyライブラリのインストール

まず、ライブラリをインストールする必要があります。以下のコマンドを使用してください:

pip install cryptography

基本的な暗号化の実装

次に、基本的な暗号化の例を見てみましょう。以下のコードでは、対称鍵暗号を使用します:

from cryptography.fernet import Fernet
# 鍵の生成
key = Fernet.generate_key()
cipher = Fernet(key)

# メッセージの暗号化
message = b"これは秘密のメッセージです"
encrypted_message = cipher.encrypt(message)

# メッセージの復号化
decrypted_message = cipher.decrypt(encrypted_message)
print(decrypted_message.decode())

鍵管理

暗号化と復号化に使用される鍵を安全に管理することも重要です。例えば、以下の方法で鍵をファイルに保存し、後で読み込むことができます:

# 鍵をファイルに保存
with open('key.key', 'wb') as key_file:
    key_file.write(key)

# ファイルから鍵を読み込む
with open('key.key', 'rb') as key_file:
    key = key_file.read()
cipher = Fernet(key)

RSA暗号の使用

さらに、安全性を高めるためにRSAなどの公開鍵暗号方式を使用することもできます。次に、RSA暗号を使用した例を示します:

from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives import hashes

# 秘密鍵と公開鍵の生成
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

# 公開鍵を使用してメッセージを暗号化
message = b"これは秘密のメッセージです"
encrypted_message = public_key.encrypt(
    message,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

# 秘密鍵を使用してメッセージを復号化
decrypted_message = private_key.decrypt(
    encrypted_message,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)
print(decrypted_message.decode())

まとめ

Cryptographyライブラリを使用することで、Pythonでのデータ暗号化が非常に簡単になります。セキュリティを高めるために、適切な鍵管理と暗号方式の選択が重要です。

参考: Cryptographyライブラリ公式サイト(外部リンク)

コメントを残す