【问题标题】:How do I convert a Bit Torrent info_hash (obtained from Wireshark) to a SHA1 hash如何将 Bit Torrent info_hash(从 Wireshark 获得)转换为 SHA1 哈希
【发布时间】:2016-07-04 16:59:59
【问题描述】:

我正在运行 Snort,它检测到一些 P2P 活动,特别是 BitTorrent 通告请求。我看到 HTTP GET /announce.php?info_hash=XXX... 请求,我正在尝试将此 XXX 转换为适当的 SHA1 哈希,以尝试了解正在下载的内容。

我读过各种说这是 URL 编码的东西,还有一些说只是删除 % 字符 - 但是我无法重现这一点。

谁能建议如何做到这一点?

【问题讨论】:

    标签: sha1 bittorrent info-hash


    【解决方案1】:

    info_hash 一个 SHA1 哈希。它是一个二进制哈希,经过 URL 编码以包含在 URL 中。

    如果你想把它变成一个十六进制编码的哈希,你需要从 URL 中提取它,URL-decode 和 hex-encode。例如在 Python 中:

    >>> '%00%01%02%20%25ABC+XYZabc%7F%80%81%FE%FF'
    '%00%01%02%20%25ABC+XYZabc%7F%80%81%FE%FF'
    >>> urllib.unquote_plus(_)
    '\x00\x01\x02 %ABC XYZabc\x7f\x80\x81\xfe\xff'
    >>> _.encode('hex')
    '00010220254142432058595a6162637f8081feff'
    

    【讨论】:

    • 值得一提的是,虽然它是一个 SHA1 哈希,但它可以在 URL 中使用 base32 等编码。
    【解决方案2】:

    好的,知道我知道。 info_hash 是一个 SHA1 哈希。一个例子是:%5d%97%dbA%d7a%2b%92%f5%c2%ef%dcv%bf%e7%e6%03%24%85%0a。如果您使用$_GET['info_hash'],它将无法工作,因为%s。 您需要使用$_SERVER['QUERY_STRING']。 代码示例如何在 PHP 中获取 info_hash 的 SHA1 哈希:

    $arye = $_SERVER['QUERY_STRING'];
    $arye = explode('info_hash=', $arye)[1];
    $arye = explode('&', $arye)[0];
    $arye = explode('%', $arye);
    $arp = '';
    foreach($arye as $ara) {
        if (strlen($ara) == 2) {
            $arp .= $ara;
        }else{
            $e1 = substr($ara, 0, 2);
            $e2 = substr($ara, 2, 1);
            $e2 = unpack('H*', $e2)[1];
            $arp .= $e1;
            $arp .= $e2;
        }
    }
    
    echo $arp; // This will be your SHA1 hash
    

    哈希:%5d%97%dbA%d7a%2b%92%f5%c2%ef%dcv%bf%e7%e6%03%24%85%0a -> 5d97db41d7612b92f5c2efdc76bfe7e60324850a

    【讨论】:

      【解决方案3】:

      不,你可以,

      infohash == sha1(torrentfile["info"])
      

      但你可以使用 info_hash 作为关键字在 DHT 网络上搜索它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-12
        • 2011-01-28
        相关资源
        最近更新 更多