BitTorrent サイトを作成しています。
ユーザーが .torrent ファイルをアップロードした場合、トラッカーから詳細情報を取得するには、情報ハッシュを取得する必要があります。
ただし、ファイルから正しい情報ハッシュを取得できないようです。
mininova から.torrent ( http://www.mininova.org/get/2886852 ) をダウンロードしました。
mininova によると、情報のハッシュは次のようになります。ただし、ファイルの情報ハッシュを作成しようとすると、次のようになります。
正しい情報ハッシュを取得できない理由についての手がかりがありません。
私が正しく理解していれば、トレント データの情報セクションからハッシュを作成する必要があります。
関連するコード:
$bencode = new BencodeModel();
$data = $bencode->decode_file($form->fields['filename']->saved_file);
$hash = $torrentmanager->create_hash($data['info']);
BencodeModel (ここに投稿するには長すぎます): http://pastebin.com/Zc5i94DQ
ハッシュ関数の作成:
function create_hash($info)
{
$bencode = new BencodeModel();
return urlencode(sha1($bencode->encode($info)));
}
私はどこが間違っているのか完全に暗闇の中にいます。どんな助けでも大歓迎です!
さらに情報が必要な場合は、お知らせください。関連情報を更新します。
編集
要求された sha1 のデータ:
var_dump($bencode->encode($info));
編集
これはますます奇妙になっています。
サイトをライブ サーバー (Linux で実行) にデプロイしましたが、ハッシュはそこで機能します。
ただし、私の開発マシン (Windows) ではまだ動作しません。
私はすでに改行/改行を置き換えてみました。
何か案は?