メインコンテンツまでスキップ

Pythonでファイルを復号化する方法

Pythonでファイルを復号化する方法

以下はPythonでファイルを復号化する詳細なステップバイステップチュートリアルです。

ステップ1:必要なライブラリのインポート

まず、ファイルの操作と暗号化に必要なライブラリをインポートする必要があります。このチュートリアルでは、暗号化と復号化にcryptographyライブラリを使用します。

from cryptography.fernet import Fernet

ステップ2:暗号化キーの生成または取得

ファイルを復号化するためには、それを暗号化するために使用された暗号化キーが必要です。既に暗号化キーを持っている場合は、このステップをスキップしてください。それ以外の場合、次のコードを使用して新しい暗号化キーを生成できます。

def generate_key():
key = Fernet.generate_key()
with open("encryption_key.key", "wb") as key_file:
key_file.write(key)

このコードは新しい暗号化キーを生成し、それをバイナリ形式のencryption_key.keyという名前のファイルに保存します。

ステップ3:暗号化されたファイルの読み取り

次に、復号化したい暗号化されたファイルを読み取る必要があります。指定した場所にファイルが存在することを確認してください。

def read_file(filename):
with open(filename, "rb") as file:
encrypted_data = file.read()
return encrypted_data

このコードは暗号化されたファイルの内容を読み取り、バイナリデータとして返します。

ステップ4:ファイルの復号化

暗号化キーと暗号化されたデータを使用して、ファイルを復号化できます。

def decrypt_file(key, encrypted_data):
fernet = Fernet(key)
decrypted_data = fernet.decrypt(encrypted_data)
return decrypted_data

このコードは暗号化キーでFernetクラスを初期化し、decryptメソッドを使用して暗号化されたデータを復号化します。

ステップ5:復号化データの保存

最後に、復号化されたデータを新しいファイルに保存できます。

def save_decrypted_data(decrypted_data, output_filename):
with open(output_filename, "wb") as file:
file.write(decrypted_data)

このコードは復号化されたデータをoutput_filenameで指定された新しいファイルに書き込みます。

完全な例

以下はすべてのステップをまとめた完全な例です。

from cryptography.fernet import Fernet

def generate_key():
key = Fernet.generate_key()
with open("encryption_key.key", "wb") as key_file:
key_file.write(key)

def read_file(filename):
with open(filename, "rb") as file:
encrypted_data = file.read()
return encrypted_data

def decrypt_file(key, encrypted_data):
fernet = Fernet(key)
decrypted_data = fernet.decrypt(encrypted_data)
return decrypted_data

def save_decrypted_data(decrypted_data, output_filename):
with open(output_filename, "wb") as file:
file.write(decrypted_data)

# 暗号化キーの生成または取得
generate_key()

# 暗号化されたファイルの読み取り
encrypted_data = read_file("encrypted_file.txt")

# ファイルの復号化
with open("encryption_key.key", "rb") as key_file:
key = key_file.read()
decrypted_data = decrypt_file(key, encrypted_data)

# 復号化データの保存
save_decrypted_data(decrypted_data, "decrypted_file.txt")

実際の暗号化されたファイルのパスには"encrypted_file.txt"を、出力ファイル名には"decrypted_file.txt"を指定してください。

以上です!提供された暗号化キーを使用して、復号化されたファイルを取得できました。