首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加密和反编译

加密和反编译
EN

Stack Overflow用户
提问于 2011-12-21 11:48:41
回答 3查看 329关注 0票数 1

我即将把我的Android应用程序投放到市场上。我最近加密了我所有的服务器/客户端通信。我想知道的是,如果我的数据是使用专用密钥加密的,如果有人反编译我的代码并提取密钥,那么从一开始加密数据是否值得呢?当数据没有加密时,我的通信速度要快得多。由于这款游戏是一款动作游戏,lag将成为一个巨大的“有趣的杀手”,根据我的经验,它是令人沮丧的。我知道加密使应用程序更安全,它使游戏玩家和服务器更安全,但它造成了巨大的滞后。安全性是否值得在性能上进行扣除?当你的代码可以反编译的时候,使用加密还值得吗?我已经在使用Android Proguard了,但是如果有人真的想反编译我的代码,他们会花时间对所有这些垃圾进行分类。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-21 11:56:37

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

不能信任

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

不要相信客户发送给你的数据,对其进行检查和验证(例如,如果有人试图通过发送修改后的位置从一个地图角‘传送’到另一个地图角)。

只接受有效的数据。

禁止作弊。

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

票数 1
EN

Stack Overflow用户

发布于 2011-12-21 11:51:28

你把加密密钥放在客户端代码里了?好吧,这是没有价值的,另一方面,加密是完全值得的,问题是你选择了错误的方式。

票数 1
EN

Stack Overflow用户

发布于 2011-12-26 02:31:55

我可能会使用身份验证而不是加密(对您发送的所有数据进行散列,以便您可以在服务器端进行验证)。这将适用于普通的游戏信息,因为没有太多的保密需要。除非你发送的是私人用户信息,如姓名、年龄、信用卡信息等,否则我建议你使用比加密快得多的普通身份验证。你可以选择非常简单的哈希函数,或者如果你认为你的游戏真的激励人们去篡改它,那么你可以使用军用级别的哈希函数,比如SHA-256或更高版本。但是,无论您使用哪种散列方案,它都应该比实现适当的加密方案少得多的时间/资源消耗。

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

https://stackoverflow.com/questions/8584857

复制
相关文章

相似问题

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