This question already has answers here:
Android Game Keeps Getting Hacked [closed]

(11个答案)


7年前关闭。





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

我不希望用户能够更改其硬币。这里是否可以选择加密或混淆?

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

请分享您知道或为了防止这种情况发生而做的事情。

最佳答案

我用数据和盐创建MD5哈希并将其存储在数据库中。

例:

Score: 1234
Lives: 3

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

Store on the database: 1234|3|b7f67f11fed055cce28d6f50fd829e9c


从数据库中读取时,我将分数和生命值与我所知道的盐连接起来,并检查它是否与存储的md5哈希匹配。

例:

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,我将得到哈希0d64ebead4451f826c15b5d03853f8da,因此无效!

显然这不是绝对可靠的,用户可以对代码进行反向工程并进行更改,但这会使事情变得更难!

仍然有人尝试对其进行修改,但是随后我向服务器发送了一条消息,将用户标记为作弊者!

10-07 17:32