問題タブ [info-hash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - torrent ハッシュ情報を作成する
トレント ファイルのトレント ハッシュ情報を生成するにはどうすればよいですか。
私はこの例を見てきました:Javaを使用してトレントのハッシュ値を計算し、それをC ++に変換しようとしています。これは私がこれまでに持っているコードです:
パラメータは、torrentstub
文字列として表される torrent ファイルです。私が理解している限りでは、 の後に来る情報を取得する必要があり4:info
ます。これは問題なく機能すると思います。たとえば、次のようになります。
この後は読めない情報ばかりですが、これは何かのバイナリデータでしょうか?
したがって、私の質問は実際には次のようになり4:info
ます。
javascript - 独自のjavascriptbencodeライブラリを作成しましたが、それでもトレント情報ハッシュを生成できませんか?
動作するJavaScriptBencodeモジュールを探してどこでも検索しましたが、見つからなかったので、トレント情報ハッシュを生成する目的で独自に作成することにしました。
私が仕様に合わせて関数を書いたので、モジュールは私の知る限りでは機能します。
辞書=>オブジェクト=>キー/値のペア
リスト=>配列オブジェクト=>数値/値のペア
整数=>オブジェクトの数
文字列..。
とにかく、トレントファイルのデータをデコードしてから、デコードされた情報キーの値をエンコードします。次に、Google APIのSHA-1モジュールを使用しますが、情報ハッシュが元のファイルと一致することはありません。私は愚かな設立です。
モジュールを徹底的にテストしました。データをデコードしてエンコード関数に渡し、元のデータと完全に一致させることはできますが、エンコードされた情報セクションの値からハッシュを生成しようとすると、不一致が発生します。
これはJavaScriptのバイナリ文字列の処理が不十分なためだと思いますが、この問題を診断または解決する方法がわかりません。
content-typeヘッダーに応じてgetリクエストからデータを出力すると、文字列のバイナリ部分の表示が異なり、この結論に達した理由です。
トレントファイルがUTF-8文字でエンコードされていることは理解していますが、その後は無力です...
よろしくお願いします。
c++ - トレント ファイルの情報ハッシュの計算
トレント ファイルの情報ハッシュを解析するために C++ を使用していますが、このサイトと比較して「正しい」ハッシュ値を取得するのに問題があります。
基本が正しいことを確認するために、非常に単純なおもちゃの例を作成しました。
崇高な .torrent ファイルを開き、info ディクショナリ以外のすべてを取り除いたので、次のようなファイルができました。
このファイルを読み込んで、次のコードで解析します。
次のようにコンパイルします。
そして、私はこの出力に遭遇しました:
この出力を期待している場合:
ここで私が間違っているかもしれないことを誰かが知っていますか? 問題は、ファイルの最後が読めないことにあるのでしょうか? これを最初に16進数か何かとして解析する必要がありますか?
php - PHP でのトレントのアナウンス リクエストでの info_hash の翻訳
info_hash 値を実際のハッシュに「変換」する方法を理解するのに問題があります。これは、トラッカーに通知しているときに uTorrent から得ているものの例です。
私が理解しようとしているのは、この奇妙な値「YNvÿ@p」を取得し、情報ハッシュをsha1として取得する方法です(例: 594E98760099B1CFC3BFAA4070C0CC02F6C1AA90)? サーバーでPHPを使用しています。
今、私はすでに次の声明を読みました:
info_hash
metainfo ファイルの情報値のベンコード形式の 20 バイトの sha1 ハッシュ。これは metainfo ファイルの部分文字列であることに注意してください。情報ハッシュは、無効であるかどうかに関係なく、.torrent ファイルにあるエンコードされた形式のハッシュでなければなりません。この値は、ほぼ確実にエスケープする必要があります。
しかし、何が起こっているのかを理解するのにはあまり役に立ちませんでした。
javascript - bittorent プロトコルのハッシュを URL エンコードする
info_hash
トラッカーと通信するための bittorent プロトコルを生成しようとしています。
しかし、無効な info_hash エラーが発生し続けます。問題はコードの urlencoded 部分にあるようですが、よくわかりません。
ベンコードされた metainfo.info の sha1 を生成し、これを使用して、私の Announceをaxios
送信します。
axios は、20bytes 配列を urlencode する最良の方法は何ですか?
私のコードの下: