在jquery中加密和解密数组的方法

时间:2013-09-04 08:44:00

标签: javascript jquery encryption

我完全不熟悉jquery和客户端编程。我试图找出一种方法:

  1. 在客户端,我有一个隐藏的用户ID /个人资料ID,我想加密,但在操纵隐藏值时,我必须解密并对其执行一些操作。

  2. 我有一个如下所示的全局数组:

    var users=[{"u_id":"1234", "u_name":"Test"},{"u_id":"12345", "u_name":"Test1"}];
    
  3. 该阵列被各种其他组件使用,例如:当用户将鼠标悬停在profile-id上时,它将从上面的数组中获取详细信息并将结果显示给他。

    简而言之,我想加密/解密脚本中的所有全局变量。

    任何插件或方法都会被高度评价。

3 个答案:

答案 0 :(得分:2)

客户端的加密/解密完全没有意义。加密用于隐藏某人的某些内容。为此,你需要一个秘密(密码等),你不会给那个人。

如果要在客户端上加密和解密某些内容,客户端将需要该密钥才能进行加密。因此,客户端拥有解密任何加密秘密所需的一切。这意味着任何用户都拥有解密数据所需的一切,并且实际上可以看到正在发生的过程(在浏览器的Javascript调试器中尝试断点)。因此,整个练习的定义毫无意义。它可能会阻止一些非常不熟练的扑克游戏,但任何有能力实际使用解密数据做某事的人都可以轻松搞定。

答案 1 :(得分:0)

我知道无法在客户端执行此操作,您可以序列化和混淆数据(例如在json字符串上使用base 64编码)。

答案 2 :(得分:0)

  

@deceze:是的,您发布的示例,让我们说用户42,尝试更新他的年龄,基本用户在登录时会看到42作为他的个人资料ID,然后随后打电话他会做出他需要的更改传递sessionkey / apikey以及配置文件ID和数据,所以基本上如果你建议我如何管理这些sessionkey / apikey,以便外面的用户/黑客不能错过.. - Jayaram Pradhan 1分钟前

这很简单:

  1. 要求用户通过常规登录机制登录,通常涉及会话ID。此会话将用户安全地识别为可以通过Web安全地执行任何操作。您的安全焦点必须在这里。
  2. 了解用户是谁,您可以验证他的所有操作。如果用户请求更改某个用户的个人资料信息,请检查他是否允许这样做。没有API密钥或任何需要的东西。服务器收到更改请求,服务器知道会话请求用户是谁,服务器可以决定接受或拒绝请求。

    • 在更新自己的个人资料的具体情况下,如果仅允许用户更新他的个人资料和他的个人资料:只需要一个操作/ URL,当用户向该操作发送数据时,服务器知道用户是谁并更新该用户的个人资料。用户不需要提交他想要更新的个人资料的用户ID,实际上他不能提交用户ID,只有他的个人资料才会得到更新。没有可公开访问的操作,允许他更新其他人的个人资料。
  3. 没有3。