如何验证torrent Infohash是否有效?

时间:2016-11-24 16:10:23

标签: bittorrent torrent

在我的项目中,我需要检查torrent Infohash是否有效。

任何人都可以建议我如何验证它?

2 个答案:

答案 0 :(得分:0)

任何20个字节的序列(十六进制为40)都是语法上有效的 infohash。

答案 1 :(得分:0)

infohash 是从getGameUsers()文件计算得出的值。

  • 如果您有.torrent文件
  • 您可以计算出它的信息哈希
  • 然后确认您拥有的信息哈希是否有效

.torrent文件是一种非常简单的数据编码。它使用编码 becoding 。 BEncoding支持:

  • 整数(i)(例如619→.torrent
  • 位串(b)(例如“ Hello,world!”→i619e
  • 列出(l)13:Hello, world! ... l
  • 字典(d)e ... d

.torrent以字典开始。字典中最重要的元素是e元素(尽管可以有其他元素):

info

为了计算 info 哈希,您可以计算 info 元素的所有内容的哈希。

  • 一旦获得信息的哈希值
  • 您将获得信息哈希

实际编码

实际编码非常简单:

{
   "info":  {
      "files": [
         { 
            "length": 1520384463,
            "path": ["Star.Trek.Picard.S01E04.Absolute.Candor.1080p.CBS.WEB-DL.AAC2.0.x264-TEPES.mkv"]
         },
         {
            "length": 689,
            "path": "[TGx]Downloaded from torrentgalaxy.to .txt",
         }
      ],
      "name": "Star.Trek.Picard.S01E04.Absolute.Candor.1080p.CBS.WEBRip.AAC2.0.x264-TEPES[TGx]",
      "piece length": 1048576,
      "pieces": [1450 SHA-1 hashes, one for each piece]
   }
 }