Я написал свою собственную библиотеку javascript bencode и до сих пор не могу сгенерировать торрент-хэши?
Я искал повсюду в поисках работающего модуля JavaScript Bencode и не смог его найти, поэтому решил написать свой собственный для генерации торрент-хэшей.
Модуль работает, насколько мне известно, когда я написал функции в спецификации.
Словарь => Объекты => Пары ключ / значение
List => Array Objects => пары число / значение
Целые числа => Число объектов
Струны...
В любом случае, я декодирую данные торрент-файла, а затем кодирую значение декодированного информационного ключа, затем я использую модуль SHA-1 от Google API, и информационный хэш никогда не совпадает с оригиналом. Я тупой основатель.
Я тщательно протестировал свой модуль. Я могу декодировать данные, передавая их в мою функцию кодирования, и она точно совпадает с исходными данными, но когда я пытаюсь сгенерировать хэш из значения секции закодированной информации, я получаю несоответствие.
Я действительно считаю, что это связано с плохой обработкой двоичных строк в JavaScript, и я не знаю, как диагностировать или решить эту проблему.
Когда я выводю данные из запроса get в зависимости от заголовка типа содержимого, двоичная часть строки отображается по-разному, и именно поэтому я пришел к такому выводу.
Я понимаю, что торрент-файл имеет кодировку UTF-8, но после этого я беспомощен...
Спасибо за любую помощь заранее.
1 ответ
Файл торрента имеет кодировку UTF-8, но его части - нет. Клавиша "кусочки" в информационном словаре строго закодирована в ASCII, поэтому извлечение ее как UTF-8 вызывает ошибки для меня с [C] и, вероятно, будет делать то же самое с JavaScript.