浏览器端无法”加密“,传统意义上的加密是为了防止数据传输的时候被监听、篡改,而不是防止用户自己修改
我们可以做到的只是让绝大多数的小白用户无法修改自己的分数,而通过插件修改一般有两种:
高手做的插件,小白用户可以使用
高手自己通过直接发请求伪造
一般加密是用js加密库函数,你可以搜下js的aes加密库,服务器传给客户端一个加密密钥并记录发送的密钥(在session中),然后浏览器用这个密钥进行加密,将加密结果传给服务器,服务器用session中的密钥进行解密后存储分数
为了让高手很难了解加密算法,可以将js代码混淆(混淆不是加密,只是让代码看着很费劲,能还原成可读性稍好些的代码,如果有人愿意花时间去研究,是可以解读的)
密钥可以通过一个算法加密传输,这样能让人”看起来“很难懂
实际上,在浏览器端做的任何处理,用户都是可以进行干扰的,因为你对分数的处理方法就写在js中,能看懂的人就知道你这个是怎么改的,使用密钥+混淆的方法能阻挡绝大部分的篡改(混淆的代码即使还原看起来也头大,一般人不愿意去分析它)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)