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での暗号化と復号化の作業に役立つことを願っています。