2012-06-09 4 views
2

Я соскабливаю веб-сайты для информации, и это связано с получением хэшей sha1 магнитных ссылок.Шахи 1 и их длина с протоколом бит торрент (магниты)?

Я получаю все магнитные ссылки с простым preg_match_all, но в моих результатах я получаю странные результаты, я понимаю, что магнитный хэш в шестнадцатеричной форме имеет длину 40 символов, но я также получаю результаты, которые возвращают строки, которые 32 символа, которые содержат другие не шестнадцатеричные значения.

Два примера из моих результатов, во-первых, нормальный 40 шестнадцатеричном хэша в ссылку магнита,

array 
    0 => string 'F5AD2D170C033736FD987106F04C3ABD6DF41D14' (length=40) 

И другие странные результаты, которые я не понимаю, где хэш является 32 не шестнадцатеричное значение,

array 
    0 => string 'VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW' (length=32) 

Был ли хэш упакован каким-то образом? Я знаю, что это не делается с pack('H*', $hash), так как это возвращает двоичный файл хэша? Магнитные связи работают, как я их протестировал.

Более того вы можете увидеть эти хэши в использовании на этом сайте

http://eztv.it

При наведении курсора на магнитных ссылок и глядя на магните хэш.

Благодаря

+1

Это другая информация о магнитах, ваше регулярное выражение (это ужасный способ разобрать html-страницу) также должно захватывать информацию трекера. –

+0

@AlexLunix Я не о другой информации, я о хэш, который находится во втором примере с длиной 32? – Griff

ответ

4

Хеши в магнитных соединениях могут быть закодированы с использованием Base32. В вашем примере,

VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW 

превращается в

ABE3BDC20CDAFC12D3A533B37605AE880A5966D6 

, который является действительным SHA-1 хэш.

+0

Спасибо, что я был после, :) – Griff

+0

Веб-сайт php не загружается, любая идея, как я могу преобразовать их в php в исходный шестнадцатеричный формат? Спасибо – Griff

+0

@Griff: Насколько я знаю, PHP не имеет встроенного способа декодирования base32. Есть библиотеки, которые могут это сделать, но – Chris

0

В основном это не действительный поток хэша, только sha1 (40 байт) действительны, торрент-клиент или bencode сценарий потерпит неудачу, если вы прошли, что в качестве торрент-хэш.

Кажется, его отношение к:

http://eztv.it/magnet:?xt=urn:btih:VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW Который отметить.

+0

Протестируйте торрент-хэши @ http://cherone.co.uk/torrent_parse; p –

+0

Я бы также добавил 'zoink.it' в ваш поиск кеша, когда делал хеш для торрент-файла :) Мне нравится ваш скрипт :)! При использовании этой ссылки внутри u торрент, хотя он начинает ее загружать? – Griff