【问题标题】:The .torrent file contains gibberish characters.torrent 文件包含乱码
【发布时间】:2014-06-25 16:27:48
【问题描述】:

谁能解释每个 .torrent 文件末尾的乱码字符?

图片显示了可以理解的信息以及乱码部分的一部分。似乎可以理解的部分在我画的粉红色管道处突然结束。

顺便说一下,我是用 UTF-8 编码在 VIM 中查看的,如果我没记错的话应该用哪个 torrent 文件编码。

【问题讨论】:

  • 您为什么希望这些文件是人类可读的? (BitTorrent 文件使用称为Bencoding 的方案进行编码。)
  • 进一步阅读后我的理解是:分隔符和小数总是ASCII字符,所以我可以区分这些。但是,介于两者之间的所有内容都可以是任何编码。

标签: vim bittorrent torrent


【解决方案1】:

您所指的数据是键为pieces 的字典条目的值。你标记的位置前面的6:pieces129140:表示该条目的key有6个字符的长度,这可以让我们确定key是pieces。键后的129140 是条目值的长度,以字节为单位。这个数据结构是bencoding的结果。

.torrent 文件中的pieces 字典条目包含连接成一个长字符串的所有片段的 SHA1 哈希值。哈希很重要,因为它们允许用户确保他们下载的片段是有效的。对单个文件使用散列比只对整个文件使用散列更好,因为它减少了浪费的数据;在您的客户意识到数据无效之前,您不必下载整个文件。

SHA1 哈希由 20 个字节组成,它们作为原始字节存储在 .torrent 文件中。这就是数据在您的编辑器中出现格式错误的原因。

pieces映射到一个长度为20的倍数的字符串。将其细分为长度为20的字符串,每个字符串都是对应索引的片断的SHA1哈希。

取自thisBitTorrent 协议规范文档。

【讨论】:

  • “字典有一个键,长度为129140个字符”,我认为不是字符数,而是字节数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2015-11-02
  • 2015-02-16
  • 2011-03-27
  • 2011-08-27
相关资源
最近更新 更多