2015-10-23 3 views
1

У меня есть две строки, хранящиеся в двух отдельных файлах, string1="95274DE03C78B0BD" и string2="48656c6c6f20576f".Как XOR две шестнадцатеричные строки в Python 3?

Как я могу поразрядным XOR их в Python 3? В качестве результата я ожидаю получить DD42218C5358E7D2. Обратите внимание: я не хочу, чтобы строки ord(), мои строки уже в шестнадцатеричном формате.

+0

Возможный дубликат [Как XOR две строки которые содержат шестнадцатеричные числа в python?] (http://stackoverflow.com/questions/17388004/how-to-xor-two-strings-that-contain-hex-numbers-in-python) – Qiu

ответ

1

Строки в Python 3 являются объектами юникода, поэтому строка шестнадцатеричных символов не соответствует двоичному представлению целого числа в памяти (которое вам нужно использовать XOR).

Имея это в виду, вы могли бы интерпретировать строки в качестве базовых 16 целых чисел первых, XOR их и преобразовать полученное число обратно в шестнадцатеричной строки:

>>> hex(int(string1, 16)^int(string2, 16)) 
'0xdd42218c5358e7d2' 

 Смежные вопросы

  • Нет связанных вопросов^_^