我可以生成javascript文件的散列来检查客户端是否对其进行了编辑吗?

我可以生成javascript文件的散列来检查客户端是否对其进行了编辑吗?,javascript,security,hash,anti-cheat,Javascript,Security,Hash,Anti Cheat,我正在用行为经济学的方法做一些关于风险选择的实验。该任务要求受试者玩(或不玩)不同的彩票。系统创建javascript文件,并在主题浏览器上运行。然而,我发现检查和编辑javascript非常容易,这将允许恶意主体给自己带来优势(例如,增加彩票支付的可能性) 如果有人让所有彩票“中奖”,很容易看出他们作弊,但如果他们把概率提高了一点点,那就很难了 除了重新编写所有内容以便逻辑是服务器端的之外,我想知道是否可以在客户端计算JS代码的哈希(md5或sha),并将其发送回服务器以检查JS是否已编辑。我

我正在用行为经济学的方法做一些关于风险选择的实验。该任务要求受试者玩(或不玩)不同的彩票。系统创建javascript文件,并在主题浏览器上运行。然而,我发现检查和编辑javascript非常容易,这将允许恶意主体给自己带来优势(例如,增加彩票支付的可能性)

如果有人让所有彩票“中奖”,很容易看出他们作弊,但如果他们把概率提高了一点点,那就很难了

除了重新编写所有内容以便逻辑是服务器端的之外,我想知道是否可以在客户端计算JS代码的哈希(md5或sha),并将其发送回服务器以检查JS是否已编辑。我在javascript中找到了几篇关于计算哈希的文章,但我不确定一个文件是否可以计算自己的哈希


我理解一个老练的用户也可以破解代码的这一部分(例如,将原始文件复制到另一个名称,然后编辑代码,使哈希指向原始文件,或者类似的东西)。但是我想知道这种技术是否会成为作弊的又一个障碍。

用户能够在运行JS代码时调试JS代码并替换某些变量中的值。即使JS哈希是可能的,它也不会阻止这一点。我相信,除了在服务器端实现部分关键逻辑之外,没有其他方法。

你不能按照自己的要求去做,尽管你可以这样做。坦白地说,我不认为这会提高标准到值得付出努力的程度,而仅仅是在JavaScript上使用一个好的缩微器,这样就很难阅读和理解。正如您所说的,确保的唯一方法是根本不信任从客户端发送的任何内容,因为它甚至可能不是浏览器,它可以是任何可以发出HTTP请求的工具,可能是专门定制的。