最终目标是在X位置翻转最后一位字节。假设我们从一个网站的字符串开始,我们对其进行base64解码,这样我们就可以使用它:
IV = "2RDs+xm/AxtYj+XViJmBPQ=="
IV = base64.b64decode(IV)
这给了我们一些看起来像(X=)的东西,看起来像垃圾,但这是我们可以处理的东西。处理此问题的最佳方法是将其列在列表中。
woop = list(IV)
在这个例子中,我们要翻转第2字节的最后一位。Python从零开始计数,因此我们需要将计数器减少1。否则,我们将把程序指向第三个字节!要翻转任何东西,请将其“异或”为1。现在是我的问题。。。
CounterX = CounterX - 1
woop[CounterX] = chr(ord(IV[CounterX]) ^ 1)
woop = "".join(woop)
IV = woop
我很确定这会翻转整个字节。我怎么能告诉它在IV[CounterX]处只翻转字节的最后一位?