[英]Sha 1 hashes and their length with the bit torrent protocol (magnets)?
我正在抓取網站上的信息,它涉及獲取磁鐵鏈接的sha1哈希。
我用一個簡單的preg_match_all
得到了所有磁鏈,但是在結果中我得到了奇怪的結果,我知道磁石哈希以十六進制形式是40個字符長,但是我也得到了返回長度為32個字符的字符串的結果。包含其他非十六進制值。
我的結果有兩個例子,首先是磁鏈中的正常40十六進制哈希,
array
0 => string 'F5AD2D170C033736FD987106F04C3ABD6DF41D14' (length=40)
我不明白哈希在哪里是32個非十六進制值的其他奇怪結果,
array
0 => string 'VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW' (length=32)
哈希是否以某種方式打包? 我知道這不是用pack('H*', $hash)
因為它返回哈希的二進制? 磁鐵鏈接確實可以正常工作。
更多信息,因此您可以在此網站上看到這些哈希在使用中
通過將鼠標懸停在磁鐵鏈上並查找磁鐵哈希。
謝謝
可以使用Base32對磁鐵鏈接中的哈希進行編碼。 在您的示例中
VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW
變成
ABE3BDC20CDAFC12D3A533B37605AE880A5966D6
這是有效的SHA-1哈希。
基本上,它不是有效的torrent信息哈希,只有sha1(40個字節)有效,如果將torrent客戶端或bencode腳本作為torrent哈希傳遞,則torrent客戶端或bencode腳本將失敗。
似乎與以下內容有關:
http://eztv.it/magnet:?xt=urn:btih:VPR33QQM3L6BFU5FGOZXMBNORAFFSZWW
這值得注意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.