基本的に、私は実験目的で小さなトラッカーを構築しています。私はかなり遠くまで行き、現在アナウンスの部分に取り組んでいます。
私が本当に理解できないのは、提供された info_hash クエリ文字列をどのようにデコードする必要があるかです。
仕様から、urlencoded 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
私は何を間違っていますか?