PythonのRSA暗号化と復号化の実装方法
Pythonでは、 cryptographyライブラリを使用してRSA暗号化と復号化を実行できます。以下に例を挙げます。
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import rsa, padding
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)
public_key = private_key.public_key()
# 使用公钥加密
message = b"Hello, world!"
encrypted = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 使用私钥解密
decrypted = private_key.decrypt(
encrypted,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print("原始消息:", message)
print("加密后:", encrypted)
print("解密后:", decrypted)
上記サンプルでは、まずrsa.generate_private_key関数でRSAキーペアを生成しています。その後、公開鍵を使ってメッセージを暗号化し、暗号化されたデータを秘密鍵を使って復号します。最後に、元のメッセージ、暗号化されたデータ、復号されたデータをそれぞれプリントアウトします。
暗号化ライブラリはあらかじめインストールされている必要があります。インストールするには、以下のコマンドを使用してください。
pip install cryptography