java - 加密与反编译

标签 java encryption decompiling

我即将将我的 Android 应用程序转换市场。我最近加密了所有服务器/客户端通信。我想知道的是,如果我的数据是使用专用 key 加密的,并且如果有人反编译我的代码并提取 key ,那么是否值得首先加密数据?当数据未加密时,我的通信速度要快得多。由于游戏是一款 Action 游戏,滞后将成为一个巨大的“乐趣 killer ”,根据经验,我知道这令人沮丧。我知道加密使应用程序更加安全,对于游戏玩家和服务器来说也更加安全,但它会导致巨大的延迟。安全性值得牺牲性能吗?当您的代码可以反编译时,是否值得使用加密?我已经使用 Android Proguard,但如果有人真的想反编译我的代码,他们会花时间整理所有这些垃圾。

最佳答案

我认为,在这些假设下操作是安全的。

  • 客户端不可信。曾经。
  • 服务器是权威的信息来源。

不要信任客户端发送给您的数据,请对其进行检查和验证(例如,如果有人尝试通过发送修改后的位置从一个 map 角“传送”到另一个角)。

仅接受有效的数据。

禁止作弊者。

加密是可以的,但是当它不会损害游戏或游戏玩法时(在你的情况下它会损害)。

关于java - 加密与反编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584857/

相关文章:

Java - 以编程方式关闭 TestNG 的默认记者

java - 如何使用 openGL (JGL) 缩放图像?

java - 如何加入使用执行程序服务启动的线程?

php - PHP中的加解密算法

string - 如何在 Perl 中将凯撒密码的字母分配给数字?

android - 有没有办法从 APK 文件中获取源代码?

java - 使用jar中的资源

java - AES 256 (Rijndael) 加密文本的 BCrypt (blowfish) 密码

java - 反编译代码中的 Goto 语句导致问题

assembly - 编译器可以优化汇编中的函数前导码吗?