6

用户通过 Rails 应用互相发送消息并为其他用户发布私人信息。

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

有意义吗?有解决办法吗?非常感谢!

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

4

3 回答 3

3

当然。使用这个http://crypto.stanford.edu/sjcl/。特别看demo http://bitwiseshiftleft.github.com/sjcl/demo/

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

于 2012-07-16T20:58:52.460 回答
1

在客户端,您可以使用openpgp.js。使用 lib 来创建密钥、签名、加密/解密等非常容易。

于 2016-01-02T01:21:16.643 回答
0

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

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

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

于 2012-07-16T21:26:14.347 回答