Я написал свою собственную библиотеку javascript bencode и до сих пор не могу сгенерировать торрент-хэши?

Я искал повсюду в поисках работающего модуля JavaScript Bencode и не смог его найти, поэтому решил написать свой собственный для генерации торрент-хэшей.

Модуль работает, насколько мне известно, когда я написал функции в спецификации.

Словарь => Объекты => Пары ключ / значение

List => Array Objects => пары число / значение

Целые числа => Число объектов

Струны...

В любом случае, я декодирую данные торрент-файла, а затем кодирую значение декодированного информационного ключа, затем я использую модуль SHA-1 от Google API, и информационный хэш никогда не совпадает с оригиналом. Я тупой основатель.

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

Я действительно считаю, что это связано с плохой обработкой двоичных строк в JavaScript, и я не знаю, как диагностировать или решить эту проблему.

Когда я выводю данные из запроса get в зависимости от заголовка типа содержимого, двоичная часть строки отображается по-разному, и именно поэтому я пришел к такому выводу.

Я понимаю, что торрент-файл имеет кодировку UTF-8, но после этого я беспомощен...

Спасибо за любую помощь заранее.

1 ответ

Файл торрента имеет кодировку UTF-8, но его части - нет. Клавиша "кусочки" в информационном словаре строго закодирована в ASCII, поэтому извлечение ее как UTF-8 вызывает ошибки для меня с [C] и, вероятно, будет делать то же самое с JavaScript.

Другие вопросы по тегам