Pythonでの暗号化:Cryptographyを使ってファイルの暗号化や復号化を行う方法

CryptographyはPythonで簡単に使用できる暗号化ライブラリです。このライブラリを使って、ファイルの暗号化や復号化を行う方法を紹介します。

ACryptographyのインストール

まずはじめに、Cryptographyをインストールします。Cryptographyはpipでインストールできます。

pip install cryptography

ファイルの暗号化

Cryptographyを使ってファイルの暗号化を行うために、以下のコードを実行します。

from cryptography.fernet import Fernet

# キーを生成する
key = Fernet.generate_key()

# キーファイルを作成する
with open('key.key', 'wb') as file:
    file.write(key)

# キーファイルを読み込む
with open('key.key', 'rb') as file:
    key = file.read()

# Fernetオブジェクトを作成する
fernet = Fernet(key)

# ファイルを読み込む
with open('original_file.txt', 'rb') as file:
    original = file.read()

# ファイルを暗号化する
encrypted = fernet.encrypt(original)

# 暗号化したファイルを保存する
with open('encrypted_file.txt', 'wb') as file:
    file.write(encrypted)

このコードでは、Fernetオブジェクトを使ってファイルを暗号化しています。まず、ランダムなキーを生成し、キーファイルを作成します。次に、キーファイルを読み込んで、Fernetオブジェクトを作成します。その後、暗号化したいファイルを読み込み、Fernetオブジェクトを使ってファイルを暗号化します。最後に、暗号化されたファイルを保存します。

ファイルの復号化

次に、暗号化されたファイルを復号化するためのコードを紹介します。以下のコードを実行してください。

from cryptography.fernet import Fernet

# キーファイルを読み込む
with open('key.key', 'rb') as file:
    key = file.read()

# Fernetオブジェクトを作成する
fernet = Fernet(key)

# 暗号化されたファイルを読み込む
with open('encrypted_file.txt', 'rb') as file:
    encrypted = file.read()

# ファイルを復号化する
decrypted = fernet.decrypt(encrypted)

# 復号化したファイルを保存する
with open('decrypted_file.txt', 'wb') as file:
    file.write(decrypted)

このコードでは、暗号化されたファイルを復号化するために、同じキーファイルを読み込み、Fernetオブジェクトを作成します。次に、暗号化されたファイルを読み込み、Fernetオブジェクトを使ってファイルを復号化します。最後に、復号化したファイルを保存します。

まとめ

Pythonを使ってファイルの暗号化や復号化ができるようになりました。ただし、この方法で使用される暗号化アルゴリズムであるFernetは、暗号化アルゴリズムとしては比較的簡単なものであり、セキュリティレベルが不十分な場合があります。つまり、この方法はセキュリティに対して完全ではないため、より高度な暗号化を必要とする場合は、より複雑な暗号化アルゴリズムを使用する必要があります。

また、このコードでは、キーが平文で保存されているため、不正アクセスを受けた場合には、キーが盗まれる可能性があります。このため、キーを暗号化して保存することが推奨されます。

以上が、Cryptographyを使ってPythonでファイルの暗号化や復号化を行う方法の簡単な紹介でした。これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com