如何为种子跟踪器对 Sha1 字符串进行 UrlEncode

How to UrlEncode a Sha1 string for a torrent tracker

我尝试向 Torrent Tracker 发送 HTTP 请求,该请求必须采用以下格式:

bt1.archive.org GET /announce?info_hash=ACC3B2E433D7C7475ABB5941B5681CB7A1EA26E2 HTTP/1.1 Host: bt1.archive.org Connection: keep-alive Accept: text/html User-Agent: CSharp

但是info_hash参数必须是UrlEncoded并且它必须看起来像:%AC%C3%B2%E4%33%D7%C7%47%5A%BB%59%41%B5%68%1C%B7%A1%EA%26%E2,所以我使用

System.Net.WebUtility.UrlEncode(info_hash)

并且输出与输入相同。 我觉得这个问题的答案很明显,但是我没有找到...

sha1 散列的长度为 20 个字节。 40 个字符长的十六进制字符串仅供人类使用。所以你需要在 url 编码之前进行十六进制解码。