0

私はBittorrentクライアントを書いています。関連する手順の1つでは、プログラムがトレントファイルの一部のSHA1ハッシュを含むHTTPGETリクエストをトラッカーに送信する必要があります。私はFiddler2を使用して、Azureusからトラッカーに送信されたリクエストをインターセプトしました。

Azureusが送信するハッシュはURLエンコードされており、次のようになります:%D9%0C%3C%E3%94%18%F0%C5%D9%83X%E03I%26%2B%60%8C%BFR

URLエンコードされる前のハッシュは次のようになります:d90c3ce39418f0c5d98358e03349262b608cbf52

2文字ごとに「%」記号を配置するほど簡単ではないことに気付いたので、このBYTE文字列をエンコードしてAzureusと同じものを取得するにはどうすればよいでしょうか。

前もって感謝します。

4

2 に答える 2

2

実際には、2文字ごとに%記号を配置するだけです。たとえば、AzureusはRURLの安全な文字であり52、の16進表現でRあるため、これを行いません。したがって、パーセントエンコードする必要はありません。代わりに使用 %52することは同等です。

于 2012-07-18T08:44:08.537 に答える
1

文字列を左から右に移動します。に遭遇した場合は%、次の2文字を出力し、大文字を小文字に変換します。他に遭遇した場合は、小文字を使用してその文字のASCIIコードを16進数で出力します。

%D9 %0C %3C %E3 %94 %18 %F0 %C5 %D9 %83 X %E0 3 I %26 %2B %60 %8C %BF R

XのASCIIコードは0x58なので、になり58ます。3のASCIIコードは0x33です。

(しかし、なぜあなたが尋ねなければならなかったのか、私はちょっと戸惑っています。あなたの質問は、あなたがこれをURLエンコードとして認識したことを明確に示しています。)

于 2012-07-18T08:44:16.930 に答える