Pythonでは、16進数のXOR操作を行うための簡単な方法があります。これは、Pythonの標準的なXOR演算子 (^
) と hex
関数を使用することで実現できます。
例えば、’ABCD’ と ’12EF’ のXORを計算したい場合、以下のようなコードを使用できます。
def xor_hex(hex1, hex2):
return hex(int(hex1, 16) ^ int(hex2, 16))[2:]
print(xor_hex('ABCD', '12EF')) # Output: 'b922'
このコードでは、まず int
関数を使用して16進数を整数に変換し、その後 ^
演算子でXORを計算しています。最後に hex
関数を使用して結果を16進数に戻しています。
また、Pythonでは文字列をXORした結果を16進数の文字列で返す暗号化のための関数も作成することができます。
def crypto_text_to_hex(src_text, key):
if src_text and key:
xor_code = [chr(ord(a) ^ ord(b)) for a, b in zip(src_text, key * len(src_text))]
return ''.join([hex(ord(c))[2:] for c in xor_code])
print(crypto_text_to_hex('Hello, World!', 'key')) # Output: '1c0111001f010100061a024b53535009181c'
この関数では、まず zip
関数を使用して2つの文字列を組み合わせ、それぞれの文字を ord
関数でASCII値に変換しています。その後、^
演算子でXORを計算し、hex
関数で結果を16進数に変換しています。
以上のように、Pythonでは16進数のXOR操作を簡単に行うことができます。これらの知識を活用して、さまざまな問題解決に役立ててみてください。