gpt4 book ai didi

php - 解码 Torrent 跟踪器抓取的 Torrent 哈希?

转载 作者:可可西里 更新时间:2023-10-31 22:45:38 64 4
gpt4 key购买 nike

我正在使用 BEncoded PHP Library解码来自 Bittorrent 跟踪器的编码响应。

Tracker 的响应是:

d5:filesd20:¼€™rÄ2ÞÊþVA  .]á^¦d8:completei285e10:downloadedi22911e10:incompletei9eeee

使用下面的代码解码后:

require 'bencoded.php';

$be = new BEncoded;
//Response saved in scrape.txt
$data =file_get_contents('scrape.txt');
print_r($be->Decode($data));

输出是:

Array ( [files] => Array ( [¼€™rÄ2ÞÊþVA  .]á^¦] => Array ( [complete] => 285 [downloaded] => 22911 [incomplete] => 9 [isDct] => 1 ) [isDct] => 1 ) [isDct] => 1 )

我的问题上面输出中我的问题是如何解码输出中的那些神秘字母。

最佳答案

链接:http://wiki.vuze.com/w/Scrape user3690414 发布的几乎解释了不同键的含义。

解释原始编码字符串:

d5:filesd20:¼€™rÄ2ÞÊþVA  .]á^¦d8:completei285e10:downloadedi22911e10:incompletei9eeee

您需要了解编码的工作原理:https://wiki.theory.org/BitTorrentSpecification#Bencoding

这里最重要的是要知道编码字典中的每个条目都是一个Key,Value-pair。
其中 Key 是一个字节串
Value 以下类型之一:字节串整数列表字典.

考虑到这一点,原始字符串可以像这样分解:

d               // The first d indicates the start of the Root dictionary
5:files // that has a Key with a 5 byte string name 'files',
d // the value of the 'files'-key is a second dictionary
20:¼€™rÄ2ÞÊþVA .]á^¦ // that has a Key 20 byte = 160 bit big endian SHA1 info-hash
d // the value of that key is a third dictionary
8:complete // that has a Key with a 8 byte string name 'complete',
i285e // the value of that key is a Integer=285
10:downloaded // that has a Key with a 10 byte string name 'downloaded',
i22911e // the value of that key is a Integer=22911
10:incomplete // that has a Key with a 10 byte string name 'incomplete',
i9e // the value of that key is a Integer=9
e // this e indicates the end of the third dictionary
e // this e indicates the end of the second dictionary
e // this e indicates the end of the Root dictionary

希望这有助于理解“bencoded.php”的输出。

编辑。
如果你想制作 160 位大端 SHA1 信息哈希 [¼'rÄ2ÞÊþVA .]á^¦]
更易于阅读,我建议您将其输出为 40 字节的十六进制编码字符串:
0xBC801B9D9972C432DECAFE56410F092E5DE15EA6

关于php - 解码 Torrent 跟踪器抓取的 Torrent 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866922/

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