首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >BT种子文件 bencoding编码详细解析

BT种子文件 bencoding编码详细解析

作者头像
深蓝studyzy
发布于 2022-06-15 06:36:11
发布于 2022-06-15 06:36:11
1K0
举报
文章被收录于专栏:深蓝居深蓝居

BT种子文件使用了一种叫bencoding的编码方法来保存数据。 bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典) 编码规则如下: strings(字符串)编码为:<字符串长度>:<字符串> 例如: 4:test 表示为字符串"test"  4:例子 表示为字符串“例子” 字符串长度单位为字节 没开始或结束标记

integers(整数)编码为:i<整数>e 开始标记i,结束标记为e 例如: i1234e 表示为整数1234  i-1234e 表示为整数-1234 整数没有大小限制  i0e 表示为整数0  i-0e 为非法 以0开头的为非法如: i01234e 为非法

lists(列表)编码为:l<bencoding编码类型>e 开始标记为l,结束标记为e 列表里可以包含任何bencoding编码类型,包括整数,字符串,列表,字典。 例如: l4:test5abcdee 表示为二个字符串["test","abcde"]

dictionaries(字典)编码为d<bencoding字符串><bencoding编码类型>e 开始标记为d,结束标记为e 关键字必须为bencoding字符串 值可以为任何bencoding编码类型 例如: d3:agei20ee 表示为{"age"=20}  d4:path3:C:\8:filename8:test.txte 表示为{"path"="C:\","filename"="test.txt"}

具体文件结构如下: 全部内容必须都为bencoding编码类型。 整个文件为一个字典结构,包含如下关键字 announce:tracker服务器的URL(字符串) announce-list(可选):备用tracker服务器列表(列表) creation date(可选):种子创建的时间,Unix标准时间格式,从1970 1月1日 00:00:00到创建时间的秒数(整数) comment(可选):备注(字符串) created by(可选):创建人或创建程序的信息(字符串) info:一个字典结构,包含文件的主要信息,为分二种情况:单文件结构或多文件结构 单文件结构如下:           length:文件长度,单位字节(整数)           md5sum(可选):长32个字符的文件的MD5校验和,BT不使用这个值,只是为了兼容一些程序所保留!(字符串)           name:文件名(字符串)           piece length:每个块的大小,单位字节(整数)           pieces:每个块的20个字节的SHA1 Hash的值(二进制格式) 多文件结构如下:           files:一个字典结构                  length:文件长度,单位字节(整数)                  md5sum(可选):同单文件结构中相同                  path:文件的路径和名字,是一个列表结构,如\test\test.txt 列表为l4:test8test.txte           name:最上层的目录名字(字符串)           piece length:同单文件结构中相同           pieces:同单文件结构中相同 实例: 用记事本打开一个.torrent可以看来类似如下内容 d8:announce35:http://www.manfen.net:7802/announce13:creation datei1076675108e4:infod6:lengthi17799e4:name62:MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent12:piece lengthi32768e6:pieces20:?W ?躐?緕排T酆ee

很容易看出 announce=http://www.manfen.net:7802/announce creation date=1076675108秒(02/13/04 20:25:08) 文件名=MICROSOFT.WINDOWS.2000.AND.NT4.SOURCE.CODE-SCENELEADER.torrent 文件大小=17799字节 文件块大小=32768字节

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2005-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Torrent文件的解析与转换
BitTorrent协议的种子文件(英语:Torrent file)可以保存一组文件的元数据。这种格式的文件被BitTorrent协议所定义。扩展名一般为“.torrent”。
Rekent
2020/11/24
4.2K0
Torrent文件的解析与转换
Bittorrent 协议浅析(一)元数据文件
时代在变,很多事物慢慢消失在了数据的海洋中,但不会忘记的,时那个以相互交流、分享信息为目的存在的互联网环境,在 BS、 CS 模式盛行的今天,偶尔也要想起 Peer to Peer 存在的意义和必要性,在其存在感越来越低的今天,暂且不论对错,不问优劣,只从技术角度对其进行回味。
青橙.
2023/09/24
1.9K0
Redis源码阅读之rdb.c
REDIS_RDB_ENC_LZF |compressed_len | original_len | compressed_string
chain
2018/08/02
6790
Redis源码阅读之rdb.c
一次对BT种子的追踪小记
过年期间,宅在家里闲来无事,我在网上找各种资源。终于通过自己的不懈努力,找到了一套非常优质的资源:画面高清,中文字幕,每日定期更新十部。
FB客服
2020/02/20
2.5K0
一次对BT种子的追踪小记
OtterCTF 13道内存取证题目详细解析(下)
The reason that we took rick's PC memory dump is because there was a malware infection. Please find the malware process name (including the extension)
ChaMd5安全团队
2018/12/28
4.6K0
python破解zip压缩包密码
曾经,在网上下载过一份“学习资料”,zip格式的一份不小的压缩文件。 费劲巴拉的从“某盘”下载,却发现解压需要“密码”,顿时心里有句不当讲的话… 为了破解压缩文件的密码,我在搜索引擎输入“python zip”两个关键词。 经过过一番总结,发现破解的思路都是一样的,暴力破解。
未名编程
2024/10/12
4170
python破解zip压缩包密码
PDF Explained(翻译)第二章 构建一个简单的PDF
本文是对PDF Explained(by John Whitington)第二章《Building a Simple PDF》的摘要式翻译。
跑马溜溜的球
2021/07/14
1.6K0
PDF Explained(翻译)第二章 构建一个简单的PDF
Python边学边用--BT客户端实现之
以数字开头表示string类型,数字为string长度,长度与string内容以':'分割
py3study
2020/01/09
1.6K0
Python边学边用--BT客户端实现之
mktorrent 制作私人种子 & Deluge 做种
在 Windows OS 上,可以比较方便的使用qBittorrent等软件来制作和发布种子。 怎么在(无GUI)服务器上制作并发布一个种子呢? mktorrent 就是这样一个可以让我们使用命令行的方式来制作种子的工具。
许杨淼淼
2019/12/30
4K0
dex文件解析(第三篇)「建议收藏」
dex文件是Android系统中的一种文件,是一种特殊的数据格式,和APK、jar 等格式文件类似。 能够被DVM识别,加载并执行的文件格式。 简单说就是优化后的android版.exe。每个apk安装包里都有。包含应用程序的全部操作指令以及运行时数据。 相对于PC上的java虚拟机能运行.class;android上的Davlik虚拟机能运行.dex。
全栈程序员站长
2022/08/03
1.8K0
dex文件解析(第三篇)「建议收藏」
《Redis设计与实现》读书笔记(十五) ——Redis RDB文件结构与文件分析
《Redis设计与实现》读书笔记(十五) ——Redis RDB文件结构与文件分析 (原创内容,转载请注明来源,谢谢) 一、RDB文件结构 1、结构概述 rdb文件结构如下图所示:
用户1327360
2018/03/07
1.2K0
《Redis设计与实现》读书笔记(十五)  ——Redis RDB文件结构与文件分析
redis 6源码解析之 ziplist
ziplist中的每个entry都使用一个元数据作为前缀,该元数据包含两部分的信息:首先保存了前一个entry的长度,用于倒序查找;再者保存了entry的编码类型,表示entry的类型,如整数或字符串,当编码类型为字符串时,该字段也表示了字符串的长度。字符串的entry-data的长度就等同于该字符串的长度,而整数的entry-data的长度需要根据编码类型进行判断,并不一定等同于其entry-data字符串的长度(见下文encoding)。一个完整的entry为:
charlieroro
2020/05/08
4690
SQL函数 $EXTRACT
$EXTRACT返回字符串中指定位置的子字符串。 返回的子字符串的性质取决于所使用的参数。
用户7741497
2022/04/02
6710
Python常用函数
and,or,not运算符的优先级按从低到高,not运算拥有最优先级,只比素有运算符低一级
py3study
2020/01/17
1.1K0
一文读懂 Redis 常见对象类型的底层数据结构
Redis 是一个基于内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis 支持五种常见对象类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Zset),我们在日常工作中也会经常使用它们。知其然,更要知其所以然,本文将会带你读懂这五种常见对象类型的底层数据结构。
肉眼品世界
2020/11/11
8900
一文读懂 Redis 常见对象类型的底层数据结构
使用C++编写一个DHT爬虫,实现从DHT网络爬取BT种子
通过前面两篇文章的科普,相信大家都一定程度上了解了DHT网络和BT种子的相关知识了,不了解也没关系,可以倒回去看下面两篇文章:
全栈程序员站长
2022/08/14
1.9K1
使用C++编写一个DHT爬虫,实现从DHT网络爬取BT种子
走近科学 | ”种子“的前世今生
*本文原创作者:追影人 0x00 前言 “种子”是生命的起点,是未来的希望,同时也解决了无数宅男腐女的寂寞时光。本文将带领各位童鞋了解BT种子(torrent)及P2P网络的运行机制,教您如何更加科学
FB客服
2018/02/08
1.3K0
走近科学 | ”种子“的前世今生
PHP基于闭包思想实现的BT(torrent)文件解析工具实例详解
本文实例讲述了PHP基于闭包思想实现的torrent文件解析工具。分享给大家供大家参考,具体如下: PHP对静态词法域的支持有点奇怪,内部匿名函数必须在参数列表后面加上use关键字,显式的说明想要使用哪些外层函数的局部变量。
用户2323866
2021/07/02
9370
Bittorrent 协议浅析(四)分布式哈希
BitTorrent 是一种用于分发文件的协议,元数据文件采用 bencode 编码,分片进行 SHA-1 哈希计算比对,并介绍元数据文件数据结构,通过 HTTP 请求由 Trakcer 交换节点信息,节点直接直接进行通讯
青橙.
2023/09/29
9440
Hive - ORC 文件存储格式详细解析
ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度。和Parquet类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储。ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消耗,目前也被Spark SQL、Presto等查询引擎支持,但是Impala对于ORC目前没有支持,仍然使用Parquet作为主要的列式存储格式。2015年ORC项目被Apache项目基金会提升为Apache顶级项目。ORC具有以下一些优势:
王知无-import_bigdata
2020/12/08
13.9K0
Hive - ORC 文件存储格式详细解析
相关推荐
Torrent文件的解析与转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档