Pythonは、暗号化や復号化を行うために多数のライブラリを提供しています。その中でも、CryptographyはPythonで一般的に使用される暗号化ライブラリの1つです。このライブラリを使用すると、機密情報を安全に保護できます。この記事では、Cryptographyを使用して文字列を暗号化する方法について説明します。
Cryptographyのインストール
Cryptographyを使用するには、まずライブラリをインストールする必要があります。以下のコマンドを使用して、Cryptographyをインストールできます。
pip install cryptography
文字列の暗号化
Cryptographyを使用して文字列を暗号化する方法を次のコードで示します。
from cryptography.fernet import Fernet # キーを生成 key = Fernet.generate_key() # Fernetオブジェクトを作成 f = Fernet(key) # 暗号化する文字列 message = "この文字列を暗号化する" # メッセージをバイト列に変換 message_bytes = message.encode() # メッセージを暗号化 encrypted_message = f.encrypt(message_bytes) print(encrypted_message)
上記のコードでは、まずFernet
オブジェクトをインスタンス化し、暗号化に使用する鍵を生成します。次に、暗号化する文字列をバイト列に変換し、Fernet
オブジェクトのencrypt
メソッドを使用して暗号化します。
情報セキュリティの敗北史 脆弱性はどこから来たのか [ アンドリュー・スチュワート ]
文字列の復号化
暗号化された文字列を復号化する方法を次のコードで示します。
from cryptography.fernet import Fernet # 復号化に使用するキー key = b'2rZjKmctpx1_Scc_bfJFOnmLjgNX9AJlXHlPsgxgQr8=' # Fernetオブジェクトを作成 f = Fernet(key) # 復号化する文字列 encrypted_message = b'gAAAAABhDpI1szEEj3kn5d_-0mfY5B5ux5E7q-iZmc8nCnLhHLNwGv_d_LaTXW8ouhKXn-SpALhfC7lT6A8kb6IRHmLj_gu4zQ==' # メッセージを復号化 decrypted_message = f.decrypt(encrypted_message) # 復号化したメッセージを文字列に変換 decrypted_message = decrypted_message.decode() print(decrypted_message)
上記のコードでは、復号化に使用するキーを指定し、暗号化された文字列を復号化します。Fernet
オブジェクトのdecrypt
メソッドを使用して、暗号化された文字列を復号化します。そして、decode()
メソッドを使用して、復号化したメッセージを文字列に変換します。
安全なキーの管理
Cryptographyでは、鍵の生成と管理を自動化することができます。以下のコードでは、鍵の生成と管理を自動化するために、cryptography.fernet.Fernet
クラスのgenerate_key()
メソッドを使用します。
from cryptography.fernet import Fernet # Fernetオブジェクトを作成 f = Fernet.generate_key() # 暗号化する文字列 message = "この文字列を暗号化する" # メッセージをバイト列に変換 message_bytes = message.encode() # メッセージを暗号化 encrypted_message = f.encrypt(message_bytes) print(encrypted_message) # 復号化したメッセージを文字列に変換 decrypted_message = f.decrypt(encrypted_message).decode() print(decrypted_message)
上記のコードでは、Fernet.generate_key()
メソッドを使用して、自動的に鍵を生成します。生成された鍵はバイト列であり、Fernet
オブジェクトを作成するために直接使用することができます。
まとめ
PythonのCryptographyライブラリを使用して、文字列を暗号化する方法と、暗号化された文字列を復号化する方法について説明しました。また、鍵の生成と管理についても説明しました。CryptographyはPythonの標準的な暗号化ライブラリの1つであり、情報の安全な保管に役立つことができます。最後にPythonの学習に利用できるUdemy のサイトを紹介します。ぜひ活用ください。
[PR]