我的应用程序要求在静态存储时加密某些字段,并允许用户通过输入密码来在浏览器中本地解密它们。但是,这些加密字段不会由经过身份验证的用户自己输入数据库,而是由向用户提供私人信息的其他人提交。
如果我将密码存储在数据库中以加密新提交,那么有权访问数据库的任何人都可以轻松解密加密信息。因此,我认为我需要在数据库中存储公钥,使用公钥加密传入信息,然后将加密信息提供给用户,并让他在浏览器中使用密码解密。 (因此,在服务器端,我们永远不会解密任何东西。)
我已经查看了像ursa这样的库,但问题是用户必须保存他的私钥。 (正确吗?)有什么方法可以用相对较短的密码而不是长私钥来做到这一点吗?