This question already has answers here:
Android Game Keeps Getting Hacked [closed]
(11个答案)
7年前关闭。
我刚刚在youtube上观看了this视频。据我了解,黑客将始终能够进行黑客攻击,但是我正在寻找一种解决方案来提高我的游戏安全性。
我不希望用户能够更改其硬币。这里是否可以选择加密或混淆?
我正在寻找轻量级的解决方案。
请分享您知道或为了防止这种情况发生而做的事情。
从数据库中读取时,我将分数和生命值与我所知道的盐连接起来,并检查它是否与存储的md5哈希匹配。
例:
如果分数更改为9999,我将得到哈希0d64ebead4451f826c15b5d03853f8da,因此无效!
显然这不是绝对可靠的,用户可以对代码进行反向工程并进行更改,但这会使事情变得更难!
仍然有人尝试对其进行修改,但是随后我向服务器发送了一条消息,将用户标记为作弊者!
(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