Javascript - 使用密码加密数据的最佳方式

时间:2011-04-25 20:30:12

标签: javascript encryption

我正在创建一个可以在网络上存储包含应用程序设置的cookie的服务器。服务器将接受任何数据,但我想在将它们存储在cookie中之前对所有设置进行加密,并在读取它们时对其进行解密。因此,我可以存储非常敏感的数据,例如帐户用户名和帐户Cookie和服务器中的密码无法对其执行任何操作。

我现在的问题是:在客户端使用JavaScript密码加密此类数据的最佳方法是什么?什么是最安全的?

我需要一些代码,我可以将其嵌入到我的网站中并从那里使用它。

3 个答案:

答案 0 :(得分:10)

我建议您在JavaScript代码中使用AES加密。有关库和链接,请参阅Javascript AES encryption。您遇到的麻烦就是选择仅在客户端提供的密钥。也许你可以提示用户?或者将一些未发送到服务器的客户端系统信息散列在一起。

答案 1 :(得分:3)

您可以使用密码尝试Vernam Cypher

基本上,您使用密码作为密钥,然后对字符串进行XOR以使用密码进行加密。这也可以逆转。

以下是维基百科页面此类加密http://en.wikipedia.org/wiki/XOR_cipher

示例代码

function encrypt(key, value) {
  var result="";
  for(i=0;i<value.length;++i)
  {
    result+=String.fromCharCode(key[i % key.length]^value.charCodeAt(i));
  }
  return result;
}

function decrypt()
{
 var result="";
  for(i=0;i<value.length;++i)
  {
    result+=String.fromCharCode(key[i % key.length]^value.charCodeAt(i));
  }
  return result;
}

我没有测试过这个,但它可能很接近。你会注意到加密和解密函数应该是相同的

答案 2 :(得分:1)

编辑:误解了你的问题。请查看此问题:

What encryption algorithm is best for encrypting cookies?