我完全不熟悉jquery和客户端编程。我试图找出一种方法:
在客户端,我有一个隐藏的用户ID /个人资料ID,我想加密,但在操纵隐藏值时,我必须解密并对其执行一些操作。
我有一个如下所示的全局数组:
var users=[{"u_id":"1234", "u_name":"Test"},{"u_id":"12345", "u_name":"Test1"}];
该阵列被各种其他组件使用,例如:当用户将鼠标悬停在profile-id上时,它将从上面的数组中获取详细信息并将结果显示给他。
简而言之,我想加密/解密脚本中的所有全局变量。
任何插件或方法都会被高度评价。
答案 0 :(得分:2)
客户端的加密/解密完全没有意义。加密用于隐藏某人的某些内容。为此,你需要一个秘密(密码等),你不会给那个人。
如果要在客户端上加密和解密某些内容,客户端将需要该密钥才能进行加密。因此,客户端拥有解密任何加密秘密所需的一切。这意味着任何用户都拥有解密数据所需的一切,并且实际上可以看到正在发生的过程(在浏览器的Javascript调试器中尝试断点)。因此,整个练习的定义毫无意义。它可能会阻止一些非常不熟练的扑克游戏,但任何有能力实际使用解密数据做某事的人都可以轻松搞定。
答案 1 :(得分:0)
我知道无法在客户端执行此操作,您可以序列化和混淆数据(例如在json字符串上使用base 64编码)。
答案 2 :(得分:0)
@deceze:是的,您发布的示例,让我们说用户42,尝试更新他的年龄,基本用户在登录时会看到42作为他的个人资料ID,然后随后打电话他会做出他需要的更改传递sessionkey / apikey以及配置文件ID和数据,所以基本上如果你建议我如何管理这些sessionkey / apikey,以便外面的用户/黑客不能错过.. - Jayaram Pradhan 1分钟前
这很简单:
了解用户是谁,您可以验证他的所有操作。如果用户请求更改某个用户的个人资料信息,请检查他是否允许这样做。没有API密钥或任何需要的东西。服务器收到更改请求,服务器知道会话请求用户是谁,服务器可以决定接受或拒绝请求。
没有3。