Pythonは、その豊富なライブラリと簡潔な文法により、暗号化と復号化のタスクを簡単に行うことができます。特に、XOR暗号はそのシンプルさと、同じキーを使用して暗号化と復号化を行うことができる性質から、よく使用されます。
以下に、PythonでXOR暗号の復号化を行う基本的なコードを示します。
def xor(data, key):
return bytearray(a^b for a, b in zip(*map(bytearray, [data, key])))
# 例 (Python 2):
one_time_pad = 'shared secret'
plaintext = 'unencrypted'
ciphertext = xor(plaintext, one_time_pad)
decrypted = xor(ciphertext, one_time_pad)
print(plaintext == str(decrypted)) # True
このコードは、xor
関数を定義しています。この関数は、データとキーをバイト配列に変換し、それぞれのバイトをXOR演算します。その結果を再びバイト配列に変換して返します。
また、以下のコードは、itertools.cycle
を使用してキーを繰り返し適用し、メッセージ全体を暗号化または復号化します。
from itertools import cycle, izip
def xore(data, key):
return bytes(a ^ b for a, b in zip(data, cycle(key)))
# ファイルの暗号化と復号化
with open('encrypted_file', 'rb') as encry, open('decrypted_file', 'wb') as decry:
decry.write(xore(encry.read(), b'anykey'))
これらのコードスニペットは、PythonでXOR暗号を使用する基本的な方法を示しています。しかし、実際のセキュリティアプリケーションでは、より強力な暗号化手法と、秘密鍵の安全な管理が必要となります。