我不认为这是可能的,但无论如何我都会问。这是我想要做的:
我有一个用户在浏览器中播放的HTML5游戏。当比赛结束时,他们会看到他们的最终得分。我希望能够以加密格式将该分数发送到服务器。我不希望玩家能够对服务器调用进行逆向工程,并将他们的分数设置为高于他们实际获得的分数。有没有办法加密这个并让玩家无法对其进行逆向工程?
答案 0 :(得分:0)
简短回答:不,你想要实现的目标无法实现,但不是出于你的想法。
长答案:您肯定可以加密最终得分并将其发送到您的服务器。您甚至可以这样做,这意味着用户无法在加密后对其进行解密。
缺陷在于用户可以首先加密他们喜欢的任何内容。我们假设您在游戏结束时通过HTTP POST请求将加密的分数发送到服务器。没有什么能阻止用户拆开你的JS,找到公共加密密钥并提交相同的POST请求,而无需真正玩游戏。
实际解决问题:必须在服务器上控制游戏。游戏的客户端必须简单地发送输入动作,然后在服务器上解释。由于游戏状态只能由服务器修改,因此不能生成假分数。