如何获取.torrent文件的info_hash值

时间:2016-10-12 14:12:26

标签: c# hash sha1 bittorrent torrent

我尝试从.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?谢谢。

0 个答案:

没有答案