我即将将我的 Android 应用程序转换市场。我最近加密了所有服务器/客户端通信。我想知道的是,如果我的数据是使用专用 key 加密的,并且如果有人反编译我的代码并提取 key ,那么是否值得首先加密数据?当数据未加密时,我的通信速度要快得多。由于游戏是一款 Action 游戏,滞后将成为一个巨大的“乐趣 killer ”,根据经验,我知道这令人沮丧。我知道加密使应用程序更加安全,对于游戏玩家和服务器来说也更加安全,但它会导致巨大的延迟。安全性值得牺牲性能吗?当您的代码可以反编译时,是否值得使用加密?我已经使用 Android Proguard,但如果有人真的想反编译我的代码,他们会花时间整理所有这些垃圾。
最佳答案
我认为,在这些假设下操作是安全的。
- 客户端不可信。曾经。
- 服务器是权威的信息来源。
不要信任客户端发送给您的数据,请对其进行检查和验证(例如,如果有人尝试通过发送修改后的位置从一个 map 角“传送”到另一个角)。
仅接受有效的数据。
禁止作弊者。
加密是可以的,但是当它不会损害游戏或游戏玩法时(在你的情况下它会损害)。
关于java - 加密与反编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584857/