1

マグネット リンクまたはトレント ファイルのいずれかを介して送信するときの µTorrent の応答システムの不備、つまり、重複するトレント追加のメッセージが完全に欠如しているため、送信される前にトレント ファイルからハッシュを取得して比較しようとしています。現在の仕事のリストで。私が現在持っているコードは正しくないハッシュを返していますが、その理由はわかりません。これが私が使用しているコードです。

「dc9202f98aea7420a2872655c8f7184401e2a9c8」のハッシュを持つファイルを送信しようとしていますが、このコードは実行されるたびに 30 個ほどのハッシュのうちの 1 つを返します。

+ (NSString *) torrentHashFromFile:(NSData *)file
{
    NSString * retVal = @"";

    NSData * data = [BEncoding encodedDataFromObject:
                     [[BEncoding objectFromEncodedData:file] 
                      objectForKey:@"info"]];

    unsigned char hashBytes[CC_SHA1_DIGEST_LENGTH];

    if (CC_SHA1([data bytes], (unsigned)[data length], hashBytes))
    {
        NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];

        for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
        {
            [output appendFormat:@"%02x", hashBytes[i]];
        }

        retVal = output;
    }

    return retVal;
}
4

1 に答える 1

1

BT情報ハッシュが部分ハッシュよりも SHA1 であると考える理由は何ですか?

BEP-0003 の引用:

info_hash
    The 20 byte sha1 hash of the bencoded form of the info value from the metainfo file. 
    Note that this is a substring of the metainfo file. 
于 2013-04-17T17:59:40.733 に答える