您如何解码来自跟踪器通告请求的info_hash信息?

| 我有以下跟踪器请求:
\"info_hash=%92%c345%c0%28%15%e4rr%b1y%17%b7%cbs%0a%ef%9a%fc&peer_id=-UT2210-%2abP%b2%c23~NaN7-%7c%0f%1f&port=56541&uploaded=0&downloaded=0&left=461680&corrupt=0&key=6AD19369&event=started&numwant=200&compact=1&no_peer_id=1\"
我想对JavaScript中的
info_hash
peer_id
字段进行解码。 我已经尝试过
unescape()
decodeURI()
decodeURIComponent()
函数,但是它们没有返回预期的结果。     
已邀请:
跟踪器的HTTP GET请求中存在的信息哈希可以按以下方式进行解码: 如果有一个\'%\'字符,则接下来的2个字符是原始40个字符SHA-1哈希的一部分。 因此,您可以按以下方式破坏编码的info_hash: %92%c3 4 5%c0%28%15%e4 r r%b1 y%17%b7%cb s%0a%ef%9a%fc 所有两个以\'%\'符号为前缀的字符组都属于原始哈希。 现在,剩下的字符。我们需要找到它们对应的十六进制值。您可以参考asciitable。 例如,以10为底的4为十六进制的34。 通过这种方式将所有内容组合在一起,我们得到: 92c33435c02815e47272b17917b7cb730aef9afc-> torrent文件的SHA-1哈希。 peer_id将为我们提供有关客户端名称和版本的信息。在这种情况下: -UT2210-%2abP%b2%c23〜NaN7-%7c%0f%1f 这是Azureus格式。 UT对应于µTorrent,而2210提供了该版本。 可以使用Perl脚本轻松地实现解码过程的自动化。     
您用来“解码”的方法取决于它的“编码”方式。 选择编码方式时: escape()将不编码:
@*/+
encodeURI()将不会编码:“ 7” encodeURIComponent()将不会编码:“ 8” 您可能正在寻找某种形式的双重编码。     

要回复问题请先登录注册