Socket信息安全及拼接格式

     建立Socket安全机制,是用于防止数据被窃取,数据在传输过程中丢失,从而导致服务器或客户端数据异常等。

     实现Socket安全手段有多种,如CRC二次验证,异或,压缩,以及其他代码逻辑。

     在这要声明的是:客户端和服务器的验证逻辑必须一样,如果有两种或两种以上手段,在接收消息后要按照倒序的方式解析。比如服务器对消息进行了压缩,然后又异或加密,当客户端解析时,就要先解异或再解压缩。

     在这里我们详细说一下常见的信息格式,在开发游戏中,我们会发现信息的种类和用途有很多,例如请求背包信息,玩家同步,请求服务器信息等,所以为了方便管理,我们用协议来规范信息种类。然后将内容字符串转为二进制byte数组,写进Stream流里面发送。

     所以格式如下:


     
     在主体内容前放入协议编码,以便区分你所发送的内容是干什么的。然后我们可以先对内容进行压缩,当然也可以判定一下内容长度,如果内容很短的话就跳过压缩环节。然后再对内容进行一次异或处理,使信息更加安全,不易被破解。然后在进行CRC校验,把校验码写在编码前面。最后获取总长度,将总长度、是否压缩(bool值,用0,1表示)、信息写入数据流发送。另一端接收后,自然要先获取总长度,对分包和粘包的数据进行处理,然后获取压缩标识和信息,最后按照顺序将信息CRC验证、解异或、解压缩、读取编码获得真正的内容。

     关于如何CRC校验、异或、压缩、序列化、数据流的操作等大家可以浏览一下相关文章。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值