如何在使用jquery进行写入和读取时加密/解密cookie数据

时间:2011-03-10 05:23:08

标签: jquery

我正在使用JQuery Cookies插件来读取/写入cookie,我在下面的代码中存储了用户名,现在我希望它应该被加入cookie并在阅读时被解密。

if ($('#remember').attr('checked')) 
                    {                  
                        $.cookie('username', userNo.val());                    
                        $.cookie('remember', 'true');  
                    } 
                    else 
                    {
                        // reset cookies
                        $.cookie('username', null);                   
                        $.cookie('remember', null);
                    }  

请建议!!

1 个答案:

答案 0 :(得分:1)

没有办法安全加密数据,同时仍然可以从您的Javascript访问它,因为为了这样做,(公开可见的)Javascript必须包含解码算法和用于加密的任何密钥。数据!

相反,如果您希望加密cookie中的数据,您可以加密服务器端的内容,然后在服务器端解密内容。客户端无法看到服务器上的任何密钥(除非他们以某种方式入侵,但是你遇到了更大的问题......)。

即使cookie中的数据是加密的,也不会阻止客户端篡改它们;它只会阻止客户知道它们中的内容。您可以使用HMAC方案来保证数据没有被篡改,但这似乎有点过分。

在这种情况下,您将存储用户名作为以后识别用户的方法;你可以很容易地构造一个随机的,毫无意义的值(“nonce”),它唯一地标识用户并存储而不是用户名。 .NET Guid.NewGuid()对此有好处 - 在数据库中存储一个副本,在用户的cookie中存储一个副本。然后,当用户回来时,您可以在数据库中查找cookie值并找到正确的用户(因为GUID是唯一的)。