| 赞 | 400  | 
 
| VIP | 0 | 
 
| 好人卡 | 24 | 
 
| 积分 | 250 | 
 
| 经验 | 45372 | 
 
| 最后登录 | 2024-7-2 | 
 
| 在线时间 | 3339 小时 | 
 
 
 
 
 
Lv5.捕梦者 (版主) 
	- 梦石
 - 1 
 
        - 星屑
 - 23998 
 
        - 在线时间
 - 3339 小时
 
        - 注册时间
 - 2011-7-8
 
        - 帖子
 - 3925
 
 
  
 
 | 
	
 本帖最后由 guoxiaomi 于 2018-6-7 15:42 编辑  
 
关于联机可能的作弊,只能说防不胜防,改存档,截取网络数据,改内存,破解游戏。 
 
1. 改存档,直接把本地的存档加密就行了。如果存档内容很少,小于1024bit,直接rsa公钥加密,需要解密的时候上传到服务器。 
2. 使用 https 通讯或者类似的方案(非对称+对称加密) 
3. 似乎可以在内存里保存另一个值,实际算的时候用别的,具体我也没做过。 
4. 破解游戏,好像没有办法? 
 
恶意的攻击说没办法了,我操作就是防君子不防小人,aes 密钥写在工程里,然后工程是默认加密…… 
 
关于注册,我是这样做的 
玩家第一次用默认的key = (0, md5(0)) 连上服务端后,服务端会记录当前的总玩家数n,然后把key = (n, md5(n)) 这两个数下发到本地存起来。以后玩家就用这个 key 登陆服务器了。只要md5的 salt 取的长,玩家根本不可能知道 n->md5(n) 的计算方法,这样就避免玩家伪造 key. 而且注册、登陆、验证玩家不需要任何操作 |   
 
 
 
 |