当我想向跟踪器发送初始请求时,我所看到的所有引用都需要进行url编码。如果我将信息密钥的SHA-1哈希转换为十六进制字符串,为什么我需要对哈希进行url-encode?它只包含允许的字符。
答案 0 :(得分:4)
info_hash
参数不是十六进制字符串。它是一个纯二进制字符串,所以是的,你必须对其中的许多字节进行URL编码。 (这最终会比使用十六进制编码的字符串更长,但这对你来说是BitTorrent协议,现在为时已晚做任何事情!)
答案 1 :(得分:0)
二进制形式的info-hash(一个20字节长的SHA1)应该是URL编码的。 AFAIK一些跟踪器接受纯十六进制信息哈希(40个字符长的字符串)。