我尝试从.torrent文件中提取info_hash数据,但我不能。
我目前正在使用this torrent file进行测试,但我发现无法获得它。该文档说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.
但即使我sha1这个字符串,这不是正确的哈希(我知道正确的info_hash是什么,因为我用WireShark跟踪了uTorrent请求)
我正在使用NuGet的Bencode包读取.torrent文件,我用
提取数据var bencode = BencodeUtility.DecodeDictionary(File.ReadAllBytes(torrentfile));
foreach (KeyValuePair<string, object> kvp in bencode)
{
PrintKvp(kvp);
}
在PrintKvp()中,当我找到“info”字段时,我打印出来:
if (kvp.Key == "info")
{
SHA1Managed sha1 = new SHA1Managed();
Console.WriteLine("info_hash : " + Encoding.UTF8.GetString(sha1.ComputeHash(BencodeUtility.Encode(kvp.Value).ToArray())));
}
但结果是:info_hash : ?ò?3??GZ?YA?h???&?
这显然不是(人类可读的)sha1字符串......
我怎样才能有一个编码良好的info_hash?谢谢。