gpt4 book ai didi

php - 创建torrent文件时计算(sha1) "pieces"

转载 作者:行者123 更新时间:2023-12-04 05:56:01 27 4
gpt4 key购买 nike

我几乎完全完成了我的 torrent 服务器。我现在要做的就是找出 .torrent 文件如何填充 info 键的“pieces”键。

我目前在我的 torrent 文件中有此信息,以 utf-8 格式编码。您在最后看到的哈希是文件 TITLE 的一个 has,甚至不接近我在冒号前指定的位长度。片段的位长使用 (filesize/piece length) * 20 计算,并使用 round() 进行舍入:

d8:announce64:http://www.valevarkasystems.com:40/torrents/tracker/announce.php  

8:encoding5:UTF-84:infod6:lengthi71711042e4:name25:Executive Meeting480p.flv

12:piece lengthi128000e6:pieces11205:òOìcØq¬rkÑzÎõyjZee

最后如何正确计算“pieces”键的值?

每次我尝试在传输中打开它时,它都会被读取为已损坏。

我是否使用 fopen(),抓取一个“片段长度”的文件并为每个片段创建一个 sha1 哈希,直到我到达文件的末尾?

谢谢,

最佳答案

是的。您已阅读 piece size文件中的字节数,通过 SHA-1 独立运行每个部分。生成的 20 字节 SHA-1 摘要是您的作品,它被放置为 二进制 在件串中。

如果您使用的是 fopen()要读取数据,请确保以二进制模式打开文件(即指定“b”作为模式)。否则,您的运行时可能会在遇到字节流中的\n 时插入\r。

你应该得到 (filesize + piece_length - 1) / piece_length件数,乘以20就是你的pieces的长度字符串。

看起来您只使用单个文件种子。多文件 torrent 案例更复杂。您基本上必须想象 torrent 中的所有文件都被连接起来以形成从一个片段到一个文件和偏移量的映射。

关于php - 创建torrent文件时计算(sha1) "pieces",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com