【发布时间】:2013-01-31 07:59:17
【问题描述】:
我在一个团队中创建用于医疗环境的应用程序。我们希望根据存储在 SQLite 数据库中的密码(散列和加盐)存储使用 AES 加密的本地数据。似乎没有太多关于这样做的信息。我错过了一个技巧吗?
编辑:
由于我似乎被否决了,这里是我已经知道的一些内容。
我假设我需要使用 PBKDF2 密钥派生(见 SO here)。然后我需要按照this answer 做一些事情。我的问题是所有这些都是 C 代码,它没有利用 C++ 的任何 OOP 细节。我希望我缺少一些用于 OpenSSL 的不错的 C++ 包装器或其他一些我可以用来编写干净、可读和 OO 代码来解决问题的第 3 方库。
附:我没有为此应用程序获得报酬,因为它是 Uni 的一个软件工程项目,并且该软件的接收者是一个慈善机构。
【问题讨论】:
-
我认为否决票来自于一个相当模糊的问题。有几件事:所以你加密的数据很好,加密的密码如何输入或(请不要......)存储?
-
我在原始帖子(预编辑)中声明密码存储在使用加盐 SHA256 散列的 SQLite 数据库中。应用启动时有一个登录界面,他们输入密码,使用SQLite数据库验证,然后附加到用户对象,用于解密数据。
-
很抱歉怀疑你,我刚刚被一个行业所污染,在这个行业中,我几乎因为听人们对加密和密钥存储的方法而面无表情。好的,所以用户为每个会话输入它,这很好。对我来说,您似乎走在了安全的正确轨道上。至于取决于目标的支持库,为 C 库创建 C++ 包装器始终是一种选择。
-
我完全同意。我在安全方面有合理的基础(这就是为什么项目的这个领域是我的责任)。这是 C++(Windows 目标)开发,我有点模糊。