了解BitTorrent片断输出

时间:2017-02-14 19:39:23

标签: python sha1 bittorrent

使用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]字符串,由所有20字节SHA1哈希值的串联组成,每件一个(字节串,即不是urlencoded)

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

1 个答案:

答案 0 :(得分: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