首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将号码编码在前部(用于游戏)以保密

将号码编码在前部(用于游戏)以保密
EN

Stack Overflow用户
提问于 2017-07-20 20:32:23
回答 1查看 63关注 0票数 0

是否有可能对一个数字进行编码,这样,在前端(使用javascript),我就可以知道这个数字,并在没有黑客的情况下用它计算出来吗?

我正在做一个浏览器游戏,它使用服务器端逻辑和客户端逻辑。

例如:

敌人的生命值是100。这可以在后端(服务器)中编码。

炮塔每秒伤害= 1。后端知道它,前端知道它。

我想计算一下离0还有多长时间(直到敌人被炮塔杀死)。

但我希望黑客不会发现敌人有100健康,通过查看我的源代码和转录它。

我不能设置这样的东西: will_die_at = 10分钟后。因为玩家会通过知道确切的死亡时间来发现这个敌人的生命值很低。敌人的生命值可以从10到100 K不等。出于战略目的,我们不应该知道这一点。

我相信任何在前端解析这个数字的解码功能也可以被黑客发现,他们也可以得到这个数字:)

另一个问题是,我不能每分钟都问服务器,否则敌人已经死了。因为战场上有数以百计的敌人。我的服务器会完全超载。这只应在前面进行:)

这是一个基于服务器的浏览器HTML5 MMO.我相信有些人会尽力破解我的代码,找出这些数字,并为其他玩家制作有用的脚本/助手/缓存。这将导致不公平的PvP。

到目前为止,我有两个选择:

  1. 给玩家看敌人的确切健康数字。
  2. 后端知道这个敌人的确切死亡时间。例如,Date.now()是14:00:00,而死亡时间是今天15:12:37。前面的人不知道。但我不能每隔1-5到10秒问一次服务器,是吗?是吗?所以我的服务器给前端一个数字: 14:02:37。在这个给定的时间之后,前端只每10分钟请求一次服务器--是吗?服务器总共响应了6次-作为“不”,这个敌人还没有死亡,但你不知道你会重复多久这个问题,直到它死亡。第七次回复--“是的,它就在一秒钟前就死了”,因为服务器知道它已经死了。因此,这将给一些垃圾邮件给服务器,但不要太高,而且很可能它可以处理垃圾邮件时,它是如此罕见。黑客也找不到敌人的健康。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 20:37:10

因为浏览器完全在用户控制之下,所以这是不可能的。您可以混淆您的代码和值,但不能对它们进行加密,以便其他人无法解密它们。因为如果你用非解密的方式加密它,你的程序也就无法解密了。

服务器交互是必要的,因为您需要一个“保护区域”来隐藏您的秘密。

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

https://stackoverflow.com/questions/45224663

复制
相关文章

相似问题

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