Pythonはその柔軟性と強力な機能のため、暗号化と復号化のタスクに頻繁に使用されます。この記事では、Pythonを使用してファイルをXOR暗号化し、その後復号化する方法を説明します。

XOR暗号化とは

XOR暗号化は、二つのビット列を比較し、それらが異なる場合に1を、同じ場合に0を出力するXOR(排他的論理和)演算を使用した暗号化方法です。

PythonでのXOR暗号化

PythonでXOR暗号化を行うには、itertools.cycleを使用して秘密鍵を無限に繰り返し、zipを使用してメッセージと秘密鍵の各文字を組み合わせ、ordを使用して各文字をASCII値に変換し、XOR演算子^を使用してこれらの値をXORします。

以下に、PythonでテキストをXOR暗号化する簡単なコードを示します。

from itertools import cycle

def xor_encrypt_decrypt(input_string, key):
    return ''.join(chr(ord(c)^ord(k)) for c,k in zip(input_string, cycle(key)))

この関数は、入力文字列と鍵を引数に取り、XOR暗号化(または復号化)された文字列を返します。

ファイルのXOR暗号化と復号化

Pythonを使用してファイルをXOR暗号化するには、上記のxor_encrypt_decrypt関数を少し改良します。

def xor_encrypt_decrypt_file(input_file_path, output_file_path, key):
    with open(input_file_path, 'rb') as input_file, open(output_file_path, 'wb') as output_file:
        output_file.write(xor_encrypt_decrypt(input_file.read(), key))

この関数は、入力ファイルのパス、出力ファイルのパス、そして鍵を引数に取り、入力ファイルを読み込み、その内容をXOR暗号化(または復号化)し、結果を出力ファイルに書き込みます。

以上がPythonを使用したXOR暗号化の基本的な説明です。この情報がPythonでの暗号化と復号化の作業に役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です