如何在python中打印XOR整数值?

如何在python中打印XOR整数值?,python,hex,ascii,Python,Hex,Ascii,编辑:原来问题是用一种令人困惑的方式写的。每个字节必须对单个字符进行异或运算 我一直在尝试用python解决编码、binascii和打印的问题,但无法实现: #!/usr/bin/python3 import binascii xoredString = 0x1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736 for argument in range(ord("A"), ord(&qu

编辑:原来问题是用一种令人困惑的方式写的。每个字节必须对单个字符进行异或运算

我一直在尝试用python解决编码、binascii和打印的问题,但无法实现:

#!/usr/bin/python3
import binascii

xoredString = 0x1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736

for argument in range(ord("A"), ord("z")):
    result = xoredString ^ argument
    print(binascii.unhexlify("%x" % result).decode('ascii')) #Should be printing some word or phrase
(编辑了print参数)所以现在它打印如下值(只有最后一个字符不同。我猜这是由于XOR)

7316?x413=x9x(7-6x:9;7w

我猜这是完全错误的…有人能指出我可能犯了错误吗?

binascii.a2b_hex
接受一个表示十六进制值的字符串,但你给它一个数字,不恰当地命名为
xoredString
,它不是一个字符串。十六进制值只是你用不同于通常的文字指定的数字;它们没有唯一的类型。那么我如何才能使0x12(或18)变成“12”?这在标准库中是可能的吗?我的意思是,在执行XOR之前的某个时刻,我必须将两个参数都转换为整数,这就把我的脚本搞砸了:/
hex
是一个内置函数。print(binascii.a2b_hex(hex(result)))尝试了,但没有成功…找到了非十六进制数字。也有unexlify。同样的错误。所以我猜问题是“x”在位置1。我可以通过切片将其取出,但这是非常…非Python?…这也不起作用。无论如何,感谢你的提示。你可以随时做的一个选择是:将xoredString转换为二进制字符串,将参数转换为二进制字符串,在两个字符串上编写你自己的XOR函数,应该不会那么难。
7316?x413=x9x(7-6<x7>x:9;7w