我正在编写用于填充oracle攻击的程序,并且需要bytearrays
,
但是如果我定义一个新的bytearray
,则第一个字节0x63
的打印方式会有所不同。
我必须按字节顺序XOR
2 bytearrays
。
test = bytearray( [99,203,00] )
print(test)
print(hex(99))
输出:
bytearray(b'c\xcb\x00')
0x63
这是我的第一个问题。感谢您的帮助!
答案 0 :(得分:0)
对于字符串输出,python用chr(hexcode)
字符替换可打印的十六进制代码以用于显示:
print('c', ord('c'),hex(ord('c'))) # c 99 '0x63'
t = bytearray([99,203,0])
print(t) # bytearray(b'c\xcb\x00')
print(t[0],t[1],t[2]) # 99 203 0
它们是等效的-但打印出来较短。您可以获得像这样的全十六进制表示形式:
t = bytearray([99,203,0])
t_hex = '\\'+'\\'.join( ( hex(i) for i in t) )
print(t_hex)
输出:
\0x63\0xcb\0x0