Python 拆分加密字符串,并在每个点用一个较短的字符串对其进行异或

Python 拆分加密字符串,并在每个点用一个较短的字符串对其进行异或,python,encryption,cryptography,xor,Python,Encryption,Cryptography,Xor,我是Python新手,但有相当多的编程经验(尽管我也不知道如何用另一种语言来实现这一点) 我有一个很长的加密十六进制字符串,我想做的是在每个位置用这个对该字符串进行异或运算,这样我就可以在每个点对加密字符串进行等长的异或运算 例如,如果我将字符串12104c06134e5709和设置为74484520,我希望执行以下操作: 12104c06xor74484520 2104c061xor74484520 104c0613xor74484520 (等等……) 我不太关心结果在这一点上是如何存储的

我是Python新手,但有相当多的编程经验(尽管我也不知道如何用另一种语言来实现这一点)

我有一个很长的加密十六进制字符串,我想做的是在每个位置用
这个
对该字符串进行异或运算,这样我就可以在每个点对加密字符串进行等长的异或运算

例如,如果我将字符串
12104c06134e5709
设置为
74484520
,我希望执行以下操作:

  • 12104c06
    xor
    74484520
  • 2104c061
    xor
    74484520
  • 104c0613
    xor
    74484520
(等等……)

我不太关心结果在这一点上是如何存储的,我想一个数组就可以了(我认为是Python中的一个列表)

这可能吗?谢谢你的帮助

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

这将有助于XOR,我确实知道如何做XOR部分;我应该提到这一点。我需要帮助的主要是拆分,但谢谢你。另一个问题:以你的例子来说,是否应该计算9个XOR?我正在为你准备答案。是的,没错。谢谢这确实有效,但我试图在函数末尾将其解码回ascii,它抛出了一个错误…知道吗?我基本上在结尾添加了这个:xor=hex(hexNum^otherNum)//print xor.decode(“hex”)您使用的是Python 3吗?我知道Python 3中没有
.decode(“hex”)
,实际上我使用的是2.7.6