了解 BitTorrent 片段输出

Understanding BitTorrent Pieces Output

使用 https://github.com/utdemir/bencoder 从单个文件 torrent 中提取元信息后,我在输出的 "pieces" 部分下看到以下文本-

This is an abbreviated portion of the output- 'pieces':'\x8f1g\xdb\x1e\x17\n(\xf9\xbb\xb0&\xa0\xadT9N\xa8L\x89\x97\xf79\x15\x07N

在查看 https://wiki.theory.org/BitTorrentSpecification 之后,我了解到这个输出是 -

[a] string consisting of the concatenation of all 20-byte SHA1 hash values, one per piece (byte string, i.e. not urlencoded)

但是我看到常量反斜杠“\”,我想知道这是否类似于十六进制代码,因为 SHA-1 通常输出为十六进制?

您从程序中看到的输出被编码为 Python bytesliteral
是不可打印的字节并且 ASCII 被转义。

\x8f1g\xdb\x1e\x17\n(\xf9\xbb\xb0&\xa0\xadT9N\xa8L\x89\x97\xf79\x15\x07N

\x8f => 十六进制 0x8F
1g => ASCII“1g”
\xdb\x1e\x17 => 十六进制 0xDB1E17
\n => 转义序列表示 ASCII 换行 (LF)(十六进制 0x0A)
( => ASCII“(”
\xf9\xbb\xb0 => 十六进制 0xF9BBB0
等等