【发布时间】:2010-12-10 01:45:34
【问题描述】:
我正在尝试找出一种将用户生成的文本安全地存储在数据库中的方法(这样只有用户才能访问他/她存储的文本)。我可以让 Rails 使用用户的密码作为密钥来加密和解密用户的文本条目,但是如果用户忘记了他们的密码,就无法解密他们以前的内容/文本(因为 Rails 应用程序使用 BCrypt 仅存储密码的哈希值)。
有谁知道如何做到这一点?看起来 Dropbox 做了类似的事情:“存储在 Dropbox 服务器上的所有文件都是加密的 (AES-256),没有您的帐户密码就无法访问。” (http://www.dropbox.com/help/27) 但是它们允许您重置密码,我假设它们不会将您的纯文本密码存储在任何地方。
我错过了什么?任何建议将不胜感激。谢谢!
【问题讨论】:
-
我不相信 Dropbox(和其他人)有“没有您的帐户密码就无法访问”的数据。他们说的是他们可以解密它,但如果没有先对您进行身份验证,他们不会为您解密。据推测,他们将密钥和加密数据充分分开,以便如果有人丢失硬盘驱动器,数据将是安全的。
标签: ruby-on-rails ruby security encryption