По сути, я строю небольшой трекер для экспериментальных целей. Я продвинулся довольно далеко и сейчас работаю над анонсом.
Что я действительно не могу понять, так это то, как я должен декодировать предоставленную строку запроса info_hash.
Из спецификации это 20-байтовый хэш SHA1 с кодировкой , который заставил меня написать этот код,
byte[] foo = Encoding.Default.GetBytes(HttpUtility.UrlDecode(infoHash));
string temp = "";
foreach (byte b in foo)
{
temp += b.ToString("X");
}
Что дает 'temp' следующее значение,
5D3F3F3F3F5E3F3F3F153FE4033683F55693468
Первые и последние несколько символов верны. Это необработанный info_hash,
%5d%96%b6%f6%84%5e%ea%da%c5%15%c4%0e%403h%b9Ui4h
И это то, что и uTorrent, и мой собственный трекер дают мне как info_hash при генерации его из торрент-файла,
5D96B6F6845EEADAC515C40E403368B955693468
Что я делаю не так?