为 xbtt 生成 torrent 的 info_hash
我正在尝试创建自己的 torrent 跟踪器,但不知道如何生成用于跟踪 torrent 的 info_hash
。
这可以用 php 实现吗?
我正在使用此函数进行编码和解码 http://paste.lisp.org/display/17178
这是正确的哈希值吗?
$nn = file_get_contents('my.torrent');
$file = bdecode($nn);
$hash = sha1( bencode($file[info]) );
谢谢。
I am trying to create my own torrent tracker but dont know how to generate info_hash
that is used xbtt
to track torrents.
Is this possible with php?
I am using this function to bencode and decode http://paste.lisp.org/display/17178
Is this the correct hash?
$nn = file_get_contents('my.torrent');
$file = bdecode($nn);
$hash = sha1( bencode($file[info]) );
Thank You.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 bittorrent 规范,info_hash 是一个 urlencoded 20 字节 SHA1 哈希值Metainfo 文件中的信息键。
您可以使用
sha1
函数和 url 使用urlencode
进行编码 函数。更新:
您的方法不正确。您需要对 torrent 文件进行 bdecode,这一步您已经完成了。但您需要根据 Metainfo(torrent)文件中 info 键的值来计算 info_hash。
完成此操作后,您仍然需要对结果进行 urlencode,这似乎在当前的实现中也缺失。
According to the bittorrent specification the info_hash is an urlencoded 20-byte SHA1 hash of the value of the info key from the Metainfo file.
You can calculate the sha1 hash of a string in php using the
sha1
function and url encode ot with theurlencode
function.UPDATE:
Your method is not correct. You need to bdecode the torrent file, which you have already done. But you need to calculate the info_hash based on the value of the info key from the Metainfo (torrent) file.
When you have done that, you still need to urlencode the result, which it seems is also missing from your current implementation.