Pythonでは、文字列のXORを行うための直接的な方法はありませんが、文字列を整数に変換してからXORを行うことができます。以下にその方法を示します。
def xor_two_str(s1, s2):
return ''.join(chr(ord(a) ^ ord(b)) for a, b in zip(s1, s2))
この関数では、2つの文字列s1
とs2
を引数に取り、それぞれの文字列の文字をASCIIコードに変換してからXORを行います。その結果を文字列に戻して返します。
また、Python3ではbytearray
を使用して直接XORを行うことも可能です。以下にその方法を示します。
b1 = bytearray("test123")
b2 = bytearray("321test")
b = bytearray(len(b1))
for i in range(len(b1)):
b[i] = b1[i] ^ b2[i]
このコードでは、2つのbytearray
のXORを計算し、その結果を新しいbytearray
に格納しています。
これらの方法を使用することで、Pythonで文字列のXORを行うことが可能です。ただし、これらの方法は文字列を整数に変換するため、大きな文字列に対してはパフォーマンスが低下する可能性があります。そのため、大きなデータに対してXORを行う場合は、適切なデータ構造を使用することが重要です。