关于SKY验证登陆器原理
TDefaultMessage = recordRecog :Integer;
Ident :dWord;//注意:Hero引擎采用dWord 32位
Param :dWord;
Tag :dWord;
Series:dWord;
end;
functionMakeDefaultMsg (msg:Word; Recog:integer; param, tag, series:Word):TDefaultMessage;
var Msg: TDefaultMessage;
Msg := MakeDefaultMsg(CM_ADDNEWUSER, 0, 0, 0, 0);//Msg.msg 注册账号编号; Msg.Recog 为 LoginSrv 验证码
最后 EncodeMessage(Msg) 发送给登陆网关
//自己做专用网关,通常多加一条进行验证,以下是我个人采用方案。(客户端登陆连接需要登陆器转发处理)
1、登陆器连接网关成功,网关对该连接Socket ID 分配一个随机验证码(动态), 再次进行加密后发送给登陆器。
2、登陆器解密该字符串,获得本次连接的随机验证码。
3、MakeDefaultMsg(CM_ADDNEWUSER, SKY验证码, 0, 网关密码(加密), 随机验证码);
4、登陆网关获得数据解密后判断 随机验证码 和 网关密码。
//如果还想保险点 EncodeMessage(Msg) 字符串进行二次加密
页:
[1]