Service认证连接
来源:互联网 发布:webpack windows 编辑:程序博客网 时间:2024/06/06 19:27
最近正在学习protobuf相关知识,于是就结合实际项目来实践一下。
首先,来简单了解一下protobuf:
protobuf是google的一个开源项目,可用于以下两种用途:
(1)数据的存储(序列化和反序列化),类似于xml、json等;
(2)制作网络通信协议。
下面我们来定义remote6认证模块的protobuf协议:
//认证请求4000
message Auth
{
optional string authInfo = 1; //认证信息
}
message MessageContent
{
//上下文
optional string context = 1;
//协议号
optional uint32 type = 2;
//具体协议内容
optional bytes content = 3;
}
message ProtocolPack
{
//终端id
repeated string endID = 1;
//中间业务服务器处理类型
optional ProcessType processType = 2;
//消息类型
optional ProtocolType protocolType = 3;
//消息内容
optional MessageContent message = 4;
//全链路监控中的日志id
optional string traceId = 5;
}
定义好协议以后,就可以通过protogen.exe将我们的文件转换成对应的C#代码了,protogen.exe可自行去网上下载。
ProtoGen是用来根据***.proto文件生成对应的***.cs文件的,而做数据存储功能只需要用到protobuf-net.dll即可
生成C#代码的命令:protogen.exe -i:test.proto -o:test.cs
将.proto文件生成.cs文件后,下面就开始我们的认证过程:
1、认证过程:
认证材料:6位随机数,物理mac,sn号,encrypt加密
生成六位随机数:
MD5加密:
AESEncrypt--加密后返回十六进制:
封装第一层数据包并序列化(Auth):
封装第二层数据包(MessageContent):
生成32位uuid(e10a9775-fd14-4704-a2ad-c07096a2a911):
认证消息类型:type=4000
封装最后一层数据包并序列化加密(ProtolPack):
注意,这里的ProtocolPack加密后需要返回byte数组,与上面的AuthInfo加密后返回16进制数据不同,并且两个加密key和iv也不同。
Auth和ProtocolPack的加密密钥分别为:
最后填充自定义包:
首先我们来看一下remote6通信协议:
下面通过wireshark抓包来看一下消息协议的组成:
我们可以很清楚的看到,消息组成结构为:0xAB+4字节的消息长度+2字节保留字+protobuf消息内容+0xBA
下面我们来组装数据包:
最后再将组装的数据包socket发送出去。
服务器收到认证请求后,会返回认证结果,我们再对认证结果进行反序列处理即可。
- Service认证连接
- AXIS2客户端代码连接C#web service带ntlm认证
- Web Service Soap认证
- java 连接 安全认证
- 通过SSH认证连接GIT
- 采用认证方式连接mongodb
- node mongodb认证连接代码
- python连接mongodb密码认证
- Mongo3.4.2用户连接认证
- elasticsearch for java 认证连接
- PostgreSQL配置文件--连接和认证
- gsoap 通过SSL双向认证调用service
- Web service 基本认证相关源码
- JIRA Service Desk获得 ITIL 认证
- IDEA 连接sql service
- 使用Brio连接analysis service
- sql service 2005连接问题
- git 通过ssh 进行认证连接
- spring+springmvc+myBatis+jquery+ajax+json的增删改查
- Linux中cut命令
- 多线程总结
- openCV直方图均衡化
- 16.计算最接近目标值的和
- Service认证连接
- Tomcat9.0安装教程 Tomcat9.0环境变量配置方法
- MySQL高可用解决方案MHA
- USACO 3.3.1
- Ubuntu chkconfig /sbin/insserv:No such file or directory
- javascript 父子iframe相互传参数
- ideal断点没反应
- 小程序框架模板替换...
- HTML5 进阶系列:文件上传下载