gpt4 book ai didi

javascript - 你如何从跟踪器公告请求中解码 info_hash 信息?

转载 作者:行者123 更新时间:2023-11-29 10:24:02 26 4
gpt4 key购买 nike

我有以下跟踪请求:

"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_hashpeer_id 字段。我尝试了 unescape()decodeURI()decodeURIComponent() 函数,但它们没有返回预期的结果。

最佳答案

存在于 Tracker 的 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

所有以 '%' 符号为前缀的 2 个字符组都属于原始哈希。

现在,剩下的字符。我们需要找到它们对应的十六进制值。您可以使用 asciitable 作为引用。

例如,以 10 为基数的 4 在十六进制中为 34。

以这种方式将所有内容组合在一起,我们得到:

92c33435c02815e47272b17917b7cb730aef9afc -> torrent 文件的 SHA-1 哈希。

peer_id 将为我们提供有关客户端名称和版本的信息。在这种情况下:

-UT2210-%2abP%b2%c23~NaN7-%7c%0f%1f

这是 Azureus 格式。

UT 对应于 µTorrent,2210 为我们提供了版本。

可以使用 Perl 脚本轻松地自动执行解码过程。

关于javascript - 你如何从跟踪器公告请求中解码 info_hash 信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com