2010-11-01 59 views
8

当我想向跟踪器发送初始请求时,我所见过的所有引用都需要进行url编码。如果我将信息密钥的SHA-1散列转换为十六进制字符串,为什么需要对散列进行网址编码?它只包含允许的字符。BitTorrent跟踪器请求,info_hash格式

回答

4

info_hash参数是不是一个十六进制字符串。这是一个纯粹的二进制字符串,所以是的,你将不得不对其中的许多字节进行URL编码。 (这最终会比使用十六进制编码的字符串更长,但是对于您来说这就是BitTorrent协议,现在已经太迟而无法做任何事情了!)

0

信息哈希的二进制形式(a 20字节长的SHA1)应该是URL编码的。 AFAIK一些跟踪器接受纯粹的十六进制信息哈希(40个字符长的字符串)。