我正在开发一个Password Manager应用程序,我正在尝试找到一种安全方便地实现条目加密的方法。我有以下想法:
在我的数据库中,将有一个表来存储用户,包括用BCrypt对其进行哈希处理的密码。我不想将该哈希用作加密的密钥,因为如果数据库被破坏,攻击者将能够以纯文本方式轻松检索条目。
我的想法是使用用户密码的SHA-256作为加密密钥。流程应如下:
SHA-256
散列的明文密码添加到登录用户的详细信息中。原因是我想使用其他哈希作为加密密钥。
这是我的两个问题:
有一个问题我不知道完美的解决方案。如果用户忘记了他的密钥,他将如何检索他们的数据?可以像在CryptDB中那样使用Master Key,但这次它可能被盗。
一种解决方案可能是给每个用户提供像ubikey或类似的令牌。丢失密钥会导致同样的问题,但丢失更不切实际!
可能是,最后一个人要相信某人!
这里有link到你的编码。