BitTorrent Tracker 请求,info_hash 格式
当我想向跟踪器发送初始请求时,我看到的所有参考文献都说它需要进行 url 编码。如果我将信息密钥的 SHA-1 哈希值转换为十六进制字符串,为什么需要对哈希值进行 url 编码?它仅包含允许的字符。
When I want to send an initial request to a tracker all references I've seen says it needs to be url-encoded. If I transform the SHA-1 hash I have of the info key into a hex string, why would I need to url-encode the hash? It only contains allowed characters.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
info_hash
参数不是十六进制字符串。它是一个纯二进制字符串,所以是的,您必须对其中的许多字节进行 URL 编码。 (这往往会使它最终比仅使用十六进制编码的字符串更长,但这就是适合您的 BitTorrent 协议,现在做任何事情都太晚了!)The
info_hash
parameter is not a hex string. It's a pure binary string, so yes, you will have to URL-encode many of the bytes in it. (This tends to make it longer in the end than just using a hex-encoded string, but that's the BitTorrent protocol for you, too late to do anything about it now!)二进制形式的信息哈希(20 字节长的 SHA1)应进行 URL 编码。据我所知,一些跟踪器接受纯十六进制信息哈希(40 个字符长的字符串)。
Binary form of info-hash (a 20 byte long SHA1) should be URL encoded. AFAIK some trackers accept pure hexadecimal info-hash (40 character long string).