我正在试图弄清楚如何获取字符串中每个字节的XOR:
string = "\xa3\xb4\x55"
100000(二进制)。我怎么能在python中这样做?我试过这样做:
newString = ""
for n in string:
new = n ^ 0x20
newString.append(new)
我需要newString的输出看起来像
output = "\x83\x94\x75"
但我目前没有得到:-(任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
您需要使用ord(..)
转换为数字,然后使用chr(..)
返回角色。
>>> "".join(chr(ord(x) ^ 0x20) for x in "\xa3\xb4\x55")
'\x83\x94u' # 'u' => '\x75'
答案 1 :(得分:1)
您需要将每个字符转换为其charcode,然后在charcodes上执行xor。之后,您将结果转换回字符,结果如下:
string = "\xa3\xb4\x55"
newString = ""
for n in string:
new = chr(ord(n) ^ 0x20)
newString += new
print(newString)