关于游戏数据加密防作弊开发

乡下程序员 2013-09-11 10:46:49
我觉得啊,简单点开发的话,用access数据库保存游戏各种元素的基础数据。
这些数据肯定要加密的,目前只知道对里面内容用des加密~因为听说就算对数据库文件加密,也可以通过工具得到没有被加密的数据库文件~~
1.请问现在流行的加密方式是什么呢?
然后是游戏记录保存的问题。
我觉得全部对象都丢到一个List<T>里面,然后序列化到硬盘里去。读取数据时再拿出来反序列化赋值给游戏对象。
2.请问这样做是否可行?
这应该是挺有帮助的话题,大家讨论一下吧^_^
...全文
1132 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
home_498 2016-03-31
  • 打赏
  • 举报
回复
加个链接,直接传送比较好,楼上的文章地址http://blog.csdn.net/home_498/article/details/51013127
home_498 2016-03-31
  • 打赏
  • 举报
回复
单机游戏,怎么也没法做到绝对的防修改的。但可以让这个过程变得难一些。 1.你要保证你的游戏最终是C这类的低层语言编译的,这样反编译难度会大得多,因为只要能够反编译,你再怎么牛B的加密也没用了,C#,java这类编译的太容易反编译了。 2.加密算法不宜使用非对称加密,非对称加密后密文比明文大得多,最好多重DES就够了。密钥的话,感觉最好不是固定值的,如果是根据当前客户端所在机器的一些不会改变的属性计算而来的就好了,保证每个客户端都不一样。 3.其实还有最重要的一点不要忽略了,就是要做内存加密,否则,战斗的时候,只要开一个游戏内存修改工具,就可以随意调血,蓝,甚至是money等,然后战斗胜利,还把money合法存档,存档加密就没什么用了。内存加密最简单高效的方式,就是随机一个key出来,所有变量存储的都是与这个key异或的值,取的时候再异或一次就得原值了。如果用Unity的话,C#的内存加密的话可以看看这篇文章http://blog.csdn.net/home_498/article/details/51013127
乡下程序员 2013-09-18
  • 打赏
  • 举报
回复
引用 9 楼 wangqiuyun 的回复:
我来说两句吧,用不用数据库跟你游戏的逻辑需求是密切相关的,如果你游戏的数据没有太多的依赖数据库查询什么的,比如索引,级联查询等,就尽可能用文件,至于是不是你说的对象序列化存到硬盘上面,也是有讲究的,如果你的数据操作都是顺序读取,那够用,否则你还不如用CSV、XML之类的文件存储格式,自己再封装个专门读取xml的类,我们在IOS平台上,一般用plist格式,直接支持dictionary!总之这存储方式是各式各样,就看你喜好了,另外个人觉得要用access还不如用sqlite,小巧而且效率高。 至于数据加密问题,在客体不可信的情况下,是必要的,加密算法也是多种多样,个人感觉一般不会用DES、AES这么重量级的加密算法,更不会用非对称的,因为实在是太耗资源了,撑死用一些异或或者移位就行OK了,毕竟你这是防君子不妨小人,数据加密也是加密一些比较敏感的字段,不会全部加密的,总之你要在安全以及性能之间取个平衡点
谢谢指点。可能单机游戏这类东西,想破解总能破解的是吧~~我是想着做个网络版,玩家可以拿本地玩的数据到网上竞技场和其他玩家PK,所以考虑到加密这种事。
wangqiuyun 2013-09-16
  • 打赏
  • 举报
回复
我来说两句吧,用不用数据库跟你游戏的逻辑需求是密切相关的,如果你游戏的数据没有太多的依赖数据库查询什么的,比如索引,级联查询等,就尽可能用文件,至于是不是你说的对象序列化存到硬盘上面,也是有讲究的,如果你的数据操作都是顺序读取,那够用,否则你还不如用CSV、XML之类的文件存储格式,自己再封装个专门读取xml的类,我们在IOS平台上,一般用plist格式,直接支持dictionary!总之这存储方式是各式各样,就看你喜好了,另外个人觉得要用access还不如用sqlite,小巧而且效率高。 至于数据加密问题,在客体不可信的情况下,是必要的,加密算法也是多种多样,个人感觉一般不会用DES、AES这么重量级的加密算法,更不会用非对称的,因为实在是太耗资源了,撑死用一些异或或者移位就行OK了,毕竟你这是防君子不妨小人,数据加密也是加密一些比较敏感的字段,不会全部加密的,总之你要在安全以及性能之间取个平衡点
乡下程序员 2013-09-14
  • 打赏
  • 举报
回复
引用 6 楼 max_min_ 的回复:
[quote=引用 5 楼 wowkk 的回复:] [quote=引用 4 楼 max_min_ 的回复:] 我再来说几句吧! 说说你第二个问题的可行性 其实个人感觉应该不会用List的,访问效率太低阿! (list对频繁插入删除操作效率比较高,创建游戏角色应该很少这些动作) 在他们本身的数据库应该会有一个游戏角色的隐形ID的,通过这个ID可以直接对应查找效率会比较好点,效率高!至于具体什么形式去实现,估计各有千秋了
但是游戏数据一般不会保存在数据库的吧? 而且我的想法是这样的,加载游戏的时候数据载入可能会慢点,但之后是在内存中操作所以速度应该还勉强可以吧。[/quote] 每次下线应该都会写入数据库的吧,上线就读出来写到内存中的!实时更新缓冲的数据! 个人见解[/quote] 数据库是要用到的,但中小型游戏应该都是用小型数据库,保持一些初始化时游戏元素的数据。但这些数据应该挺容易被破解,所以还要加密。如果用数据库来保存游戏记录,那新增游戏记录也会比较麻烦,而且加密、解密、表关系联系加起来速率应该也不咋滴。我认为对内存数据进行序列化,修改下规则保持在硬盘,比较方便而且不好破解。现在游戏应该就是这样的做的。
max_min_ 2013-09-14
  • 打赏
  • 举报
回复
引用 7 楼 wowkk 的回复:
[quote=引用 6 楼 max_min_ 的回复:] [quote=引用 5 楼 wowkk 的回复:] [quote=引用 4 楼 max_min_ 的回复:] 我再来说几句吧! 说说你第二个问题的可行性 其实个人感觉应该不会用List的,访问效率太低阿! (list对频繁插入删除操作效率比较高,创建游戏角色应该很少这些动作) 在他们本身的数据库应该会有一个游戏角色的隐形ID的,通过这个ID可以直接对应查找效率会比较好点,效率高!至于具体什么形式去实现,估计各有千秋了
但是游戏数据一般不会保存在数据库的吧? 而且我的想法是这样的,加载游戏的时候数据载入可能会慢点,但之后是在内存中操作所以速度应该还勉强可以吧。[/quote] 每次下线应该都会写入数据库的吧,上线就读出来写到内存中的!实时更新缓冲的数据! 个人见解[/quote] 数据库是要用到的,但中小型游戏应该都是用小型数据库,保持一些初始化时游戏元素的数据。但这些数据应该挺容易被破解,所以还要加密。如果用数据库来保存游戏记录,那新增游戏记录也会比较麻烦,而且加密、解密、表关系联系加起来速率应该也不咋滴。我认为对内存数据进行序列化,修改下规则保持在硬盘,比较方便而且不好破解。现在游戏应该就是这样的做的。[/quote] 恩,可能是这样吧!
max_min_ 2013-09-13
  • 打赏
  • 举报
回复
引用 5 楼 wowkk 的回复:
[quote=引用 4 楼 max_min_ 的回复:] 我再来说几句吧! 说说你第二个问题的可行性 其实个人感觉应该不会用List的,访问效率太低阿! (list对频繁插入删除操作效率比较高,创建游戏角色应该很少这些动作) 在他们本身的数据库应该会有一个游戏角色的隐形ID的,通过这个ID可以直接对应查找效率会比较好点,效率高!至于具体什么形式去实现,估计各有千秋了
但是游戏数据一般不会保存在数据库的吧? 而且我的想法是这样的,加载游戏的时候数据载入可能会慢点,但之后是在内存中操作所以速度应该还勉强可以吧。[/quote] 每次下线应该都会写入数据库的吧,上线就读出来写到内存中的!实时更新缓冲的数据! 个人见解
乡下程序员 2013-09-13
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:
我再来说几句吧! 说说你第二个问题的可行性 其实个人感觉应该不会用List的,访问效率太低阿! (list对频繁插入删除操作效率比较高,创建游戏角色应该很少这些动作) 在他们本身的数据库应该会有一个游戏角色的隐形ID的,通过这个ID可以直接对应查找效率会比较好点,效率高!至于具体什么形式去实现,估计各有千秋了
但是游戏数据一般不会保存在数据库的吧? 而且我的想法是这样的,加载游戏的时候数据载入可能会慢点,但之后是在内存中操作所以速度应该还勉强可以吧。
max_min_ 2013-09-12
  • 打赏
  • 举报
回复
我再来说几句吧! 说说你第二个问题的可行性 其实个人感觉应该不会用List的,访问效率太低阿! (list对频繁插入删除操作效率比较高,创建游戏角色应该很少这些动作) 在他们本身的数据库应该会有一个游戏角色的隐形ID的,通过这个ID可以直接对应查找效率会比较好点,效率高!至于具体什么形式去实现,估计各有千秋了
乡下程序员 2013-09-12
  • 打赏
  • 举报
回复
自己顶一下呵呵
乡下程序员 2013-09-12
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
加密也有对称加密还是非对称加密之分吧,可以看看看openssl 至于你说的DES密钥长度太短,AES可能应用的比较多。 其他参考这个 http://bbs.csdn.net/topics/330094945 游戏角色应该是某个对象的形式保存服务器上的数据库中的吧! 每次登陆都通过ID去绑定获取的! 至于具体通过什么形式来保存,应该各有不同的吧!
谢谢,我先看看资料
max_min_ 2013-09-11
  • 打赏
  • 举报
回复
加密也有对称加密还是非对称加密之分吧,可以看看看openssl 至于你说的DES密钥长度太短,AES可能应用的比较多。 其他参考这个 http://bbs.csdn.net/topics/330094945 游戏角色应该是某个对象的形式保存服务器上的数据库中的吧! 每次登陆都通过ID去绑定获取的! 至于具体通过什么形式来保存,应该各有不同的吧!
设计和实现一个基于Java的五子棋手机网络对战游戏涉及以下方面: 技术选择: Java编程语言:作为主要开发语言,提供跨平台的特性,适合移动应用的开发。 Android平台:用于移动端应用程序的开发,提供了丰富的UI组件和网络通信功能。 Socket编程:用于实现客户端与服务器之间的网络通信,确保玩家可以进行实时对战。 五子棋算法:实现游戏规则、胜负判断等核心逻辑。 功能设计: 用户登录注册:玩家可以注册账号并登录游戏,也可以选择匿名游戏。 实时匹配:玩家登录后可以选择进入实时匹配模式,系统会自动匹配其他在线玩家进行对战。 游戏界面:包括棋盘、棋子、玩家信息显示等。 下棋功能:玩家可以在自己的回合下棋,系统会实时显示棋子,并检查是否胜利。 胜负判断:实现五子棋的胜负判断逻辑,判断是否有一方取得五子连珠。 实时聊天:玩家可以在游戏过程中进行实时聊天,增加互动性。 排行榜:显示玩家的胜率、等级等信息,激励玩家竞争。 架构设计: 客户端:包括游戏界面显示、用户输入响应、网络通信等功能。 服务器:处理客户端请求、管理游戏状态、匹配玩家等。 数据库:存储玩家账号信息、游戏记录、排行榜等数据。 技术实现: 客户端:使用Android Studio进行界面设计和开发,利用Socket建立与服务器的TCP连接,实现实时通信。 服务器端:Java编写服务器程序,使用Socket监听客户端连接,处理游戏逻辑和数据交换。 数据库:使用SQLite或其他数据库存储玩家信息和游戏数据。 安全性和稳定性: 对于用户账号和密码的安全存储和传输,可以使用加密技术。 对于网络通信,进行数据校验和异常处理,确保通信的稳定性和可靠性。 针对作弊行为,可以设计监测和范机制,保证游戏的公平性和正常性。 通过以上设计和实现,玩家可以在手机上随时随地与其他玩家进行五子棋对战,享受游戏的乐趣并提高棋艺。同时,系统的实时通信和数据管理确保了游戏的流畅性和稳定性。
网络安全专业术语简介全文共6页,当前为第1页。网络安全专业术语简介全文共6页,当前为第1页。安全评估 网络安全专业术语简介全文共6页,当前为第1页。 网络安全专业术语简介全文共6页,当前为第1页。 一个组织的信息系统经常会面临内部和外部威胁的风险。 随着黑客技术的日趋先进,没有这些黑客技术的经验与知识很难充分保护您的系统。 安全评估利用大量安全性行业经验和漏洞扫描的最先进技术,从内部和外部两个角度,对企业信息系统进行全面的评估。 由于各种平台、应用、连接与变更的速度和有限的资源组合在一起,因此采取所有必要措施保护组织的资产比以往任何时候都困难。环境越复杂,就越需要这种措施和控制来保证组织业务流程的连续性。 安全监管 系统架构特点: 统一管理,分布部署该文设计的企业网络安全管理系统是采用网络安全管理中心对系统进行部署和管理,并且根据网络管理人员提出的需求,将网络安全代理分布地布置在整个网络系统之中,然后将选取出的网络功能模块和网络响应命令添加到网络安全代理上,网络安全管理中心可以自动管理网络安全代理对各种网络安全事件进行处理。 模块化开发方式本系统的网络安全管理中心和网络安全代理采用的都是模块化的设计方式,如果需要在企业网络管理系统中增加新的网络设备或管理策略时,只需要对相应的新模块和响应策略进行开发实现,最后将其加载到网络安全代理中,而不必对网络安全管理中心、网络安全代理进行系统升级和更新。 分布式多级应用对于机构比较复杂的网络系统,可使用多管理器连接,保证全局网络的安全。在这种应用中,上一级管理要对下一级的安全状况进行实时监控,并对下一级的安全事件在所辖范围内进行及时全局预警处理,同时向上一级管理中心进行汇报。网络安全主管部门可以在最短时间内对全局范围内的网络安全进行严密的监视和范。 移动安全 随着移动互联网+产业的高速发展及智能移动终端全面普及,移动App已经无处不在,据统计,2018年我国网民数量达到了8.29亿,手机网民占比98.6%,截止2018年12月,我国手机App总量达到449万款。手机APP在方便了人们生活之余,也带来了巨大的安全隐患。 在网络信息安全体系建设过程中,移动安全容易被大家所忽视,大量安全人员对移动安全风险形势存在误判,往往片面的认为做好APP加固即可万事大吉,殊不知移动安全仍然面临着大量的业务安全风险。网易易盾凭借多年移动安全服务经验深入金融、游戏、电商、政企、社交等行业进行风险态势研究,洞悉移动安全的风险来源已经从最初的被解包逆向分析、动态调试攻击,演变成利用业务逻辑漏洞实现业务作弊攻击。 数据安全 数据安全指的是用技术手段识别网络上的文件、数据库、帐户信息等各类数据集的相对重要性、敏感性、合规性等,并采取适当的安全控制措施对其实施保护等过程。与边界安全、文件安全、用户行为安全等其他安全问题相同,数据安全并非是唯一一种能提升信息系统安全性的技术手段,也不是一种能全面保障信息系统安全的技术手段。它就是一种能够合理评估及减少由数据存储所带来的安全风险的技术方式。 云计算安全 自云计算诞生之日起,其安全问题就一直为业界所关注。 IDC在2008年10月发布的网络安全专业术语简介全文共6页,当前为第2页。网络安全专业术语简介全文共6页,当前为第2页。关于企业IT主管的意向调查报告中,安全成为他们在考虑将云计算引入企业时面临的最大挑战。总的来说,云安全主要涉及两个 领域的问题,一个是数据隐私,一个是系统安全。 网络安全专业术语简介全文共6页,当前为第2页。 网络安全专业术语简介全文共6页,当前为第2页。 数据隐私问题是云计算这种新兴的服务模式无法回避的问题。虽然云计算从服务提供方式上可以划分为IaaS(基础设施即服务)、PaaS(平台即服务)和 SaaS(软件即服务)3个层次,但是在本质上,它们都是将数据中心外包给云计算服务提供商的模式。因此,如何保证用户数据的私密性及如何让用户相信他们 的数据能够获得必要的隐私保护是云计算服务提供商需要特别关注的问题。 漏洞扫描 漏洞扫描有以下四种检测技术: 基于应用的检测技术。它采用被动的、非破坏性的办法检查应用软件包的设置,发现安全漏洞。 基于主机的检测技术。它采用被动的、非破坏性的办法对系统进行检测。通常,它涉及到系统的内核、文件的属性、操作系统的补丁等。这种技术还包括口令解密、把一些简单的口令剔除。因此,这种技术可以非常准确地定位系统的问题,发现系统的漏洞。它的缺点是与平台相关,升级复杂。 基于目标的漏洞检测技术。它采用被动的、非破坏性的办法检查系统属性和文件属性,如数据库、注册号。通过消息文摘算法,对文件的加密数进行检验。这种技术的实现是运行在一个闭环上,不断地处理文件、系统目标、系统目标属性,然后产生检验数,把这些检验数同原来的检验数相比较。一旦发现改

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧