xor
ファイルの内容を特定の値で試して、 XOR暗号を作成することができます。必ず、ファイルをバイナリモードで読み取り/書き込みしてください。これをテストして、目的に合っているかどうかを確認する必要があります(テキストファイルでは問題なく機能しますが、バイナリでは機能しない理由はわかりません)。
もちろん、エンコードとデコードには同じ(キー)値(たとえば文字)を使用する必要がありますが、これらの操作の両方に同じコードを使用できます。
これが私が最近まとめたコードで、まさにそれを実行します。
import sys
def processData(filename, key):
with open(filename, 'rb') as inf, open(filename+'.xor', 'wb') as outf:
for line in inf:
line = ''.join([chr(ord(c)^ord(key)) for c in line])
outf.write(line)
if __name__ == '__main__':
if len(sys.argv) != 3:
print 'Usage: xor_it filename key'
print ' key = a single character'
else:
processData(sys.argv[1], sys.argv[2])