マグネット リンクまたはトレント ファイルのいずれかを介して送信するときの µ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;
}