我正试图想出一种方法将用户生成的文本安全地存储在数据库中(这样只有用户才能访问他/她存储的文本)。我可以使用用户的密码作为密钥来加密和解密用户的文本条目,但是如果用户忘记了密码,就无法解密他们以前的内容/文本(因为Rails应用程序使用BCrypt只存储密码的哈希值。)
有谁知道如何做到这一点? Dropbox看起来像这样:“存储在Dropbox服务器上的所有文件都是加密的(AES-256),没有您的帐户密码就无法访问。” (http://www.dropbox.com/help/27)然而,他们允许您重置密码,我假设他们不会在任何地方存储您的纯文本密码。
我错过了什么?任何建议将不胜感激。谢谢!
答案 0 :(得分:0)
逻辑规定只有两个选项:
很明显Dropbox选择了(1)他们允许重置密码的事实。
答案 1 :(得分:-1)
以Gintautas的选项1为基础,采用双重加密计划:
第2部分提供的“静态安全性”可防止系统中的入侵者获得对数据库文件的访问权限。也许不是100%你所追求的确切安全性,而是越来越近了。