gpt4 book ai didi

python - 翻转一个字节中的最后一位

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:39 24 4
gpt4 key购买 nike

最终目标是翻转位置 X 的最后一位字节。假设我们从一个网站的字符串开始,我们对其进行 base64 解码,以便我们可以使用它:

IV = "2RDs+xm/AxtYj+XViJmBPQ=="
IV = base64.b64decode(IV)

这给了我们一些看起来像 (����X��Ո��=) 的东西,它看起来像垃圾,但它是我们可以使用的东西。使用它的最佳方法是将其放入列表中。

woop = list(IV)

假设在这个例子中,我们希望翻转第 2 个字节的最后一位。 Python 从零开始计数,因此我们需要将计数器减 1。否则,我们的程序将指向第 3 个字节!要翻转任何东西,你需要将它与 1 进行异或。现在这是我的问题......

CounterX = CounterX - 1
woop[CounterX] = chr(ord(IV[CounterX]) ^ 1)
woop = "".join(woop)
IV = woop

我很确定这会翻转整个字节。我怎样才能告诉它只翻转 IV[CounterX] 字节的最后一位?

最佳答案

  • base64.decode 返回一个字符串
  • python2x 中的字符串总是字节!
    • 如果您使用的是 python3,您可能需要调用 bytes(IV) 来确保 8 位 block ......但我不确定我是否经常使用 python3
  • some_int XOR 1 只会翻转最低字节
    • print bin(0xff ^ 0x01) 所示

那么我们再次回到是什么让您认为这不是您所看到的行为?您能给我们举个例子来说明这个问题吗?

关于python - 翻转一个字节中的最后一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com