因此,假设我有一条秘密消息要加密并存储在我的数据库中,经过身份验证的用户可以从中检索、解密、读取、更新消息。
编辑:我遇到的问题是:使用相同的密码进行授权和解密是没有意义的。通常,哈希密码存储在数据库中以验证用户。但是,如果我也使用哈希密码来加密消息,那么一旦黑客看到数据库,他所要做的就是使用哈希密码解密消息
通过进行一些stackoverflow搜索(http://stackoverflow.com/questions/2388256/secure-encrypted-database-design?rq=1),如果我理解不正确,现在纠正我,似乎解决方案是加密用公钥加密消息,用私钥解密消息,然后用用户密码对这些私钥进行对称加密。然后可以将加密的私钥存储在数据库中。总而言之,它是这样工作的:用户提供一个密码,它解密存储在数据库中的私钥,然后用它来解密存储在数据库中的秘密消息。
现在,我的问题是:你可以使用密码来验证和解密消息吗?在成功解密私钥之前,我不希望黑客能够猜测密码,所以一些用户身份验证(即用户名、密码、在数据库中存储散列密码)会很好。但是,必须同时输入验证密码和密码才能解密消息的想法似乎过分了。
我相信我可能误解了链接的帖子,但我的最终问题是如何构建安全系统,以便可以在数据库中加密消息(如果有人未经授权访问数据库)而无需一个人的密码是解密的关键。