如何为种子跟踪器对 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 编码之前进行十六进制解码。
我尝试向 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 编码之前进行十六进制解码。