所以,我有一个以字节格式表示的单个字节,看起来像这样:
b'\xFF'
很容易理解,单个字节是在'\x'后面的两个符号(0-F)。
但有时模式不匹配,'\x'后面包含超过两个符号。
例如,如果我使用secrets.token_bytes(),可能会得到以下内容:
>>> import secrets
>>> secrets.token_bytes(32)
b't\xbcJ\xf0'
或者使用 hashlib 模块:
>>> import hashlib
>>> hashlib.sha256('abc'.encode()).digest()
b'\xbax\x16\xbf\x8f\x01\xcf\xeaAA@\xde]\xae"#\xb0\x03a\xa3\x96\x17z\x9c\xb4\x10\xffa\xf2\x00\x15\xad'
那么,请问有人能解释一下这些额外符号的作用以及它们是如何生成的吗? 谢谢!
\xhh
字符都是十六进制表示法。其他所有字符都是ASCII字符的字面值。很容易在许多ascii字符中发现偶尔出现的十六进制字符,但像你在“hashlib digest”中展示的那样,以反向方式更难。 - quamrana