开发者社区> 问答> 正文

游戏client和server交互数据加密和压缩问题

我现在在做自己的手机游戏,client和server之间的通信是socket,发送数据的格式是json,但是目前的数据没有加密,请问这种情况下客户端该用什么加密算法对数据进行加密呢?考虑到流量的问题,想对双方通信的数据进行压缩,请问有什么好的算法可以对数据进行压缩呢?

展开
收起
杨冬芳 2016-07-05 09:08:04 2356 0
1 条回答
写回答
取消 提交回答
  • IT从业

    个人感觉没必要。

    先说压缩,通讯时间重要还是流量重要,压缩很耗时间。

    再说加密,你是c/s模式,重要数据都在库里,就算加密传输到客户端,使用时客户端内存中也解密了。
    你的客户端代码应该类似这样:

          //人物行走
            void walkTo(byte[] encryptedBuffer) {
              //如果对你这个函数进行hook,加密等于摆设
                byte[] targetBuffer = decrypt(encryptedBuffer);
                //或者在这里截你的解码后的明文数据
                tuple<int,int> target = getTarget(targetBuffer);
                walkTo(target.x,target.y);
         }
    
         tuple<int,int> getTarget(byte[] targetBuffer) {
                //按你的协议,解码出坐标
         }
    
         byte[] decrypt(byte[] encryptedBuffer) {
               //解密
         }
    

    ,你是mobile,自己做游戏,集中精力搞游戏吧。服务端的判断做健壮了,没必要加密。如果追求流量小的话,可以弃用json。使用protobuf或者protobuf-like协议来序列化数据。体积会小很多很多。如果还是嫌数据大,做个huffman编码,或者现成的用Zippy/Snappy或者LZO。
    简单的就是可以用des等加密,或者rc4等流加密。压缩用gzip等。

    2019-07-17 19:51:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于可信计算与加密计算 打造云上原生计算安全 立即下载
\"视频服务特色解决方案——直播连麦与点播加密 \" 立即下载
量子加密通信技术 立即下载