中国开发网: 论坛: 程序员情感CBD: 贴子 264775
haitao
【技术贴】看看这个数据包协议是否有什么漏洞、弊端?
xxxx方案数据包协议定义:(将用于串口和TCP通讯)
数据包的内容为:
版本号:"AA00";
后续字节长度:FFFF(4个ASCII字符('0'-'9','A'-'F')表达的2个字节(0-64K));
如”012A”==0x01*256+0x2a
后续字节:由字节数由上面的后续字节长度指定。

后续字节的内容为:
信息头字节数:FF(2个ASCII字符('0'-'9','A'-'F')表达的1个字节(0-255));
信息头前导字符:'[';
信息头;
信息头结束字符:']';
信息体前导字符:'{';
信息体;
信息体结束字符:'}';
附加的校验码:FFFF(4个ASCII字符('0'-'9','A'-'F')表达的2个字节),对前面的所有数据(含版本号)作校验(如果信息体是加密的,校验码则是基于加密后的信息体所作的)。

(信息体可以是加密的,其它部分必须则为明文;信息体长度无须指定,信息体前导字符之后直到整个包包最后的5个字节之前,都是信息体)

信息头定义:
;encodemode=xx;keymode=xx;traceno=xxx;from=xxx;to=xxx;...;
(采用类INI格式的多域描述,每个域的格式为:;name=value;
域间的多个’;’等效于为1个’;’
域value里不得出现’;’,如果不得不出现,应该以转义符表达:’\e’==’;’ ‘\\’==’\’
主要用于标识信息体的加密算法和密钥的模式;顺便核对包的编号、发送方、接收方等信息;
都是以';'开头和结尾;具体域定义可以灵活扩展,不同的包里面的域的数量有可能不同,但是总长度限制为255字节
信息头不会加密,所有,尽量不要存放敏感数据)

信息体(可能是经过加密的,如果是加密的,则下面说的是加密前的内容)定义:
;cmd=xxxx;aaaid=xxxxxxxxxx;bbbid=xxxxxxxx;cccid=xxxxxxxxx;nnnn=xxxxxxxxxxxx;mmmm=xxxxxxxxx;
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录