我习惯了将字节表示为十六进制值的 python 字节字面量语法,例如 b'\x7a' 是十六进制值 0x7a。但是,我遇到了一个问题,我不知道它是如何工作的。我第一次使用 ssl 库并使用 ssl.RAND_bytes(...) 创建随机值它返回的字符串包含改变值的字符(比如在执行 int. from_bytes(...)) 我收到的示例字符串:
b'\x12\x1f)\x8b\xe0\xd7LD'
b'\x808\x8a(\x02\xb3S\xc9\xabW_\n\xf3\xbb\x80o'
b'\xde\xef\x81%FMB=Ps'
b'9\x81\x90\xdc\xfa\x98\xbd\x1f^;'
我不明白的是那些非十六进制值字符,例如 \x81 或 MB=Ps 之前的 9 .我想了解这些额外值代表什么以及在调试代码时如何解释它们。我知道 python 对这些没有问题,是我不知所措。
注意:我是在windows 7 64位的python3.3上
请您参考如下方法:
字节数组表示法将某些值转换为它们的文本表示:
>>> b'\x12\x41\x42'
b'\x12AB'
在这种情况下,十六进制数 41 是大写字母 A 的 ASCII 值。
