是否可以将用户知道的加密信息发送到服务器,而无需他们知道如何解密?



我认为这是不可能的,但我还是会问。这是我正在尝试做的:

我有一个HTML5游戏,用户可以在浏览器中玩。当游戏结束时,他们会看到他们的最终得分。我希望能够以加密格式将该分数发送到服务器。我不希望玩家能够对服务器调用进行逆向工程,并将他们的分数设置为高于他们实际获得的分数。有没有办法加密它并使玩家无法对其进行逆向工程?

简短回答:不,你想要实现的事情不能完成,但不是出于你认为的原因。

长答案:您当然可以加密最终分数并将其发送到您的服务器。 您甚至可以以一种意味着用户在加密后无法希望解密它的方式执行此操作。

缺陷在于用户可以首先加密他们喜欢的任何内容。 假设您在游戏结束时通过 HTTP POST 请求将加密的分数发送到服务器。 没有什么能阻止用户拆开你的JS,找到公共加密密钥并提交相同的POST请求,而无需实际玩你的游戏。

要实际解决您的问题:必须在服务器上控制游戏。 游戏的客户端必须简单地发送输入操作,然后在服务器上进行解释。 由于游戏状态仅由服务器修改,因此无法生成虚假分数。

相关内容

最新更新