用于rails应用程序的客户端数据加密/解密

时间:2012-07-16 11:38:45

标签: javascript ruby-on-rails security encryption

用户通过rails app向对方发送消息并为其他用户发布私人信息。

目标是保护消息,因此系统管理员和数据库泄漏都无法破坏数据。带有收件人密钥的Javascript客户端加密,加密数据存储在数据库中并在收件人端解密。密钥不存储在系统中。

有意义吗?有解决方案吗? 非常感谢!

更新:我的意思是非对称加密。每个用户有两个密钥:一个用于加密,一个用于解密。以及应用程序本身的密码。用户使用其密码登录,创建一条消息,该消息在客户端加密,带有收件人公钥(存储在系统中)并保存在数据库中。收件人使用他的密码登录,然后输入他的私钥来解码消息。解密也是客户端,私钥不会发送到服务器。

3 个答案:

答案 0 :(得分:2)

不确定。使用此http://crypto.stanford.edu/sjcl/。 特别要看演示http://bitwiseshiftleft.github.com/sjcl/demo/

要记住一件事,您不能存储密钥的唯一方法是让用户从密码(不应该是他们为您的网站使用的密码)中获取密码。这很好,就是上面的库所做的。但是,如果他们忘记密码,就没有帮助他们,

答案 1 :(得分:1)

在客户端,您可以使用openpgp.js。使用lib创建密钥,签名,加密/解密等是很容易的。

答案 2 :(得分:0)

可能是其中一个解决方案.jsbn库是一个快速,可移植的纯JavaScript数学数学实现,可以在桌面和移动浏览器上实现公钥加密和其他应用程序。

http://www-cs-students.stanford.edu/~tjw/jsbn/

RSA密码学演示http://www-cs-students.stanford.edu/~tjw/jsbn/rsa2.html