我可以生成JavaScript文件的哈希值以检查客户端是否对其进行了编辑吗?

问题描述

我正在使用https://pavlovia.org进行一些有风险选择的行为经济学实验。该任务要求受试者玩(或不玩)不同的彩票。系统创建在主题浏览器上运行的javascript文件。但是,我发现检查和编辑javascript非常容易,这将使恶意主体发挥自己的优势(例如,增加彩票支付的可能性)。

如果有人使所有彩票“中奖”,就很容易说出他们被骗了,但是如果他们少量增加概率,那就很难了。

除了重写所有内容以使逻辑在服务器端之外,我想知道是否有可能在客户端上计算JS代码的哈希(md5或sha)并将其发送回服务器以进行枯萎JS已被编辑。我在javascript中发现了几篇与计算散列相关的文章,但不确定文件是否可以计算自己的散列。

我感谢老练的用户也可以破解部分代码(例如,将原始文件复制到另一个名称,然后编辑将哈希值指向原始文件等的代码)。但是我不知道这种技术是否可能成为作弊的另一个障碍。

解决方法

用户可以在运行时调试JS代码并替换某些变量中的值。即使可以进行JS哈希处理,也无法避免这种情况。我相信,除了在服务器端成为关键逻辑的一部分之外,别无他法。