如何在VB6中计算Torrent信息哈希值

时间:2010-10-28 15:59:43

标签: vb6 bittorrent

据我所知,你必须在torrent文件中计算信息字典的SHA1, 我正在努力解析信息字典,我是否需要在计算sha1哈希之前解码bencoded信息字典?

我该怎么办?

1 个答案:

答案 0 :(得分:6)

info hash 是采用bencoded格式的 info dictionary 的SHA-1哈希值。

torrent文件包含元信息词典的bencoded表示,后者又包含信息词典

您必须获取文件的 info dictionary 部分才能计算其哈希值。假设您可以访问bencode编码器和解码器,您可以:

  • 解码整个文件
  • 获取信息词典的一部分
  • 重新编码以进行散列。

在伪代码中:

metainfo = b_decode(contents_of("file.torrent"))
info = metainfo.getValue("info")
encoded_info = b_encode(info)
info_hash = sha1(encoded_info)