Javascript - 使用密码加密数据的最佳方法
我正在创建一个可以在网络上存储 cookie 的服务器,其中包含应用程序设置。服务器将接受任何数据,但我想在将所有设置存储在 cookie 中之前对它们进行加密,并在读出它们时对其进行解密。因此我可以存储非常敏感的数据,例如帐户用户名和密码。 cookie 和服务器中的密码无法对其执行任何操作。
我现在的问题是:在客户端使用 JavaScript 中的密码加密此类数据的最佳方法是什么?什么是最安全的?
我需要一些可以嵌入到我的网站中并从那里使用它的代码。
I'm creating a server which can store cookies on the web that will contain application settings. The server will accept any data, but I want to encrypt all the settings before storing them in a cookie and decrypt them when reading them out. So I can store very sensitive data like Account Usernames & Passwords in the cookies and the server cannot do anything with it.
My question is now: What is the best way to encrypt such data with a password in JavaScript on the client side? What is the most secure?
I need some code that I can embed into my site and use it from there.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我建议在 JavaScript 代码中使用 AES 加密。有关库和链接,请参阅 Javascript AES 加密。您将遇到的麻烦是选择一个仅在客户端可用的密钥。也许您可以提示用户?或者将一些未发送到服务器的客户端系统信息散列在一起。
I'd recommend using AES encryption in your JavaScript code. See Javascript AES encryption for libraries and links. The trouble you'll have is picking a key that is only available on the client side. Perhaps you can prompt the user? Or hash together some client system information that's not sent to the server.
编辑:误解了你的问题。请查看这个问题:
哪种加密算法最适合加密 cookie?
EDIT: Misunderstood your question. Check out this question instead:
What encryption algorithm is best for encrypting cookies?
您可以使用密码尝试 Vernam Cypher 。
基本上,您使用密码作为密钥,然后对字符串进行异或以使用密码进行加密。这也可以逆转。
这是这种类型加密的维基百科页面 http://en.wikipedia.org/wiki/XOR_cipher
示例代码
我还没有测试过这个,但它可能接近。你会注意到加密和解密函数应该是相同的
You could try a Vernam Cypher with the password.
Basically you use the password as the key and then XOR the string to encrypt with the password. This can be reversed as well.
Here is a wikipedia page this type of encryption http://en.wikipedia.org/wiki/XOR_cipher
Example Code
I haven't tested this but its probably close. you will notice the encrypt and decrypt functions should be identical