Разделите зашифрованную строку и зафиксируйте ее с более короткой строкой в каждой точке
Я новичок в Python, но у меня достаточно опыта в программировании (хотя я и не знаю, как бы я это делал на другом языке).
У меня есть зашифрованная шестнадцатеричная строка с длинным номером, и я хотел бы сделать это с помощью the
в каждой позиции, так что я хорюю строку одинаковой длины из зашифрованной строки в каждой точке.
Например, если бы у меня была строка 12104c06134e5709
а также the
как 74484520
Я хотел бы сделать:
12104c06
исключающее74484520
2104c061
исключающее74484520
104c0613
исключающее74484520
(так далее...)
Я не слишком обеспокоен тем, как результат сохраняется в этот момент, я думаю, что массив будет в порядке (список в Python, я думаю).
Это возможно? Спасибо за помощь.
1 ответ
Решение
def iterXOR(hexString, otherString):
#Convert otherString to a hex (the 16 is for base 16)
otherNum = int(otherString, 16)
#Iterate over the hexString
for i in range(0, len(hexString) - len(otherString) + 1):
#Grab the substring of length N beginning at index i
#Where N is the length of otherString and i is the index
subString = hexString[i:i+len(otherString)]
#Convert the substring to a hex number
hexNum = int(subString, 16)
#Print the product of the XOR (or do whatever you want here)
print hex(hexNum ^ otherNum)
#Usage
iterXOR("12104c06134e5709", "74484520")
Выходы:
>>>
0x66580926
0x554c8541
0x64044333
0x70882414
0x384e566e
0xb42971c5
0x725b0b77
0x157ca050
0x67061229