添加加密逻辑

master
章传马 2023-05-11 15:03:13 +08:00
parent 849b55033d
commit edd6d91799
2 changed files with 25 additions and 5 deletions

BIN
img.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -1,12 +1,13 @@
<!-- TOC -->
* [结构](#结构)
* [消息结构](#消息结构)
* [Body 加密、解密](#body-加密解密)
* [过程](#过程)
* [ChkSum](#chksum)
* [Body数据的序列化和反序列化](#body数据的序列化和反序列化)
* [Protobuf协议](#protobuf协议)
* [消息命令与Body对应关系](#消息命令与body对应关系)
<!-- TOC -->
# 结构
# 消息结构
![](/home/mic/Pictures/Screenshots/截图_选择区域_20230426173011.png)
消息结构由两部分组成即消息头和消息体。消息头大小固定20个字节在解析数据流时先读取20个字节解析出消息头数据后再读取Body数据。
@ -25,11 +26,30 @@
## Body 加密、解密
- 算法AES-128-CBC
- key`example key 1234`(正式环境另外提供)。
#### 过程
## ChkSum
- 算法CRC-32校验和,使用IEEE多项式。
>说明将Seq、Cmd、UT、body(加密后)按顺序写入buffer后通过CRC-32计算校验和。
---
# Body数据的序列化和反序列化
### Protobuf协议
> Protobuf即Protocol Buffers,是Google公司开发的一种跨语言和平台的序列化数据结构的方式,是一个灵活的、高效的用于序列化数据的协议。
本协议会提供多个协议文件,部分说明如下:
- `const.proto` 文件定义cmd枚举和一些默认的结构。
- `error.proto` 文件定义了默认错误结构
- 其他文件代表不同的功能模块结构体
---
# 消息命令与Body对应关系
| Cmd | Body文件位置 | 请求body | 返回的body |
|:---------------|:--------------|:-------|:--------------|
| SCT_ping | system.proto | Ping | Pong |
| SCT_GetVersion | version.proto | Empty | GetVersionRsq |