tracker — перевод info_hash в запросе объявления торрента в Stack Overflow

У меня возникла проблема, чтобы понять, как я могу «перевести» значение info_hash в реальный хеш.
Вот пример того, что я получаю от uTorrent, когда он сообщает моему трекеру:

{
passkey: "77ec6a27adcc441648d66d0b873550e4",
info_hash: "YNvÿ@p",
peer_id: "-UT3430-89 ",
port: "54790",
uploaded: "0",
downloaded: "491520",
left: "24928863",
corrupt: "0",
key: "A2DD5E96",
numwant: "200",
compact: "1",
no_peer_id: "1"}

Я пытаюсь понять, как мне взять это странное значение: «YNvÿ @ p» и получить информационный хэш как sha1 (например, 594E98760099B1CFC3BFAA4070C0CC02F6C1AA90)?
Я использую PHP на моем сервере.

Сейчас я уже прочитал следующие утверждения:

info_hash

20-байтовый хэш sha1 закодированной формы информационного значения из файла metainfo. Обратите внимание, что это подстрока файла metainfo. Информационный хэш должен быть хешем закодированной формы, найденной в файле .torrent, независимо от того, является ли он недействительным. Это значение почти наверняка придется избежать.

Но это не очень помогло мне понять, что происходит.

2

Решение

ОК, я нашел решение для этого.
По какой-то причине $ _GET в PHP (мы используем CodeIgniter) не получит полные двоичные данные, похоже, по какой-то причине он их отбрасывает. И осталось только «YNvÿ @ p», но на самом деле на пути было еще несколько неизвестных двоичных символов.

Итак … что я сделал, чтобы получить полные параметры URL:

$parts = parse_url($_SERVER['REQUEST_URI']);

И тогда я получил это значение в ключе info_hash:

D%3b%16%01%b2%af%d7%cbT%e1%a1%d0A%20%20%f7%ce%c2%d3%bf

После этого я просто сделал это действие:

$info_hash = bin2hex(urldecode($parts["info_hash"]));

И получил полный хэш!

@ Sammitch, спасибо, что указали мне правильное направление по этому вопросу!

3

Другие решения

# php -r 'echo(hex2bin("594E98760099B1CFC3BFAA4070C0CC02F6C1AA90"));' | hexdump -C
00000000  59 4e 98 76 00 99 b1 cf  c3 bf aa 40 70 c0 cc 02  |YN.v.......@p...|
00000010  f6 c1 aa 90                                       |....|

Заметили шаблон?

1

По вопросам рекламы [email protected]