我正在创建一个可以在网络上存储包含应用程序设置的cookie的服务器。服务器将接受任何数据,但我想在将它们存储在cookie中之前对所有设置进行加密,并在读取它们时对其进行解密。因此,我可以存储非常敏感的数据,例如帐户用户名和帐户Cookie和服务器中的密码无法对其执行任何操作。
我现在的问题是:在客户端使用JavaScript密码加密此类数据的最佳方法是什么?什么是最安全的?
我需要一些代码,我可以将其嵌入到我的网站中并从那里使用它。
答案 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)
编辑:误解了你的问题。请查看此问题: