首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让Android游戏更安全,不受黑客攻击

让Android游戏更安全,不受黑客攻击
EN

Stack Overflow用户
提问于 2013-05-30 01:22:39
回答 2查看 195关注 0票数 0

我刚在youtube上看了this视频。据我所知,黑客总是能够进行黑客攻击,但是我正在寻找一种解决方案来提高我的游戏安全性。

我不希望用户能够更改他们的硬币。加密或混淆在这里是一个选项吗?

我正在寻找一种轻量级的解决方案。

请分享你知道或已经做了什么来防止(使它更难)的发生。

EN

回答 2

Stack Overflow用户

发布于 2013-05-30 02:12:59

我用数据加上盐创建了一个MD5散列,并将其存储在数据库中。

示例:

代码语言:javascript
运行
复制
Score: 1234
Lives: 3

Calculate MD5 from: "fsjdhASd8adnsa9asdmasdsd#1234#3#AS88asdDA*ASD8ASdmas"

Store on the database: 1234|3|b7f67f11fed055cce28d6f50fd829e9c

在从数据库读取数据时,我将score和Live值与我知道的盐连接在一起,并检查它是否与存储的md5散列匹配。

示例:

代码语言:javascript
运行
复制
Read score = 1234
Read lives = 3

Concatenate "fsjdhASd8adnsa9asdmasdsd#" + score + "#" + lives + "#AS88asdDA*ASD8ASdmas"
Calculated MD5 = b7f67f11fed055cce28d6f50fd829e9c

Calculate the MD5 from this string and check if it matches with the stored hash

如果分数被更改为9999,我将得到hash 0d64ebead4451f826c15b5d03853f8da,因此它是无效的!

显然,这并不是万无一失的,用户可能会对代码进行反向工程并对其进行更改,但这会使事情变得更加困难!

有些人仍然试图修改它,但随后我向服务器发送了一条消息,将该用户标记为作弊!

票数 1
EN

Stack Overflow用户

发布于 2013-05-30 02:12:03

最可靠的方法是存储服务器端的重要信息,并让客户端与服务器进行交互。由于这些黑客攻击只发生在客户端,当客户端试图购买硬币时,您应该询问服务器是否允许购买。

当然,这可以通过劫持网络响应、伪造服务器等方式进行黑客攻击,如果您没有添加适当的安全措施就不是这样。但至少这种黑客攻击不会有任何效果。

但加密或混淆也应该在某种程度上起作用,因为它不可能搜索到值,然而,如果有人对你的应用进行反向工程,也不难弄清楚这是如何做到的。ProGuard可能会让你更安全一点,但服务器端始终是最安全的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16820223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档