如何在数据库上保存应用程序密码?

时间:2018-12-27 19:33:25

标签: database encryption salt password-encryption

我需要一些帮助来确定我在数据库上存储密码的解决方案是否良好(安全)。信息安全是一个复杂的主题,所以我不确定我的解决方案是否弱,甚至是超能力。

我的应用程序需要在数据库上保存一些用户和密码,并使用它们登录另一个应用程序。此登录仅在服务器端发生。我们可以将此用户称为“提供者”。每个提供程序都有一个唯一的id标识,它们来自前端应用程序,有必要知道需要使用哪个提供程序。

将密码存储在纯文本中不是替代方法。因此,我的想法是:使用每个提供商的使用一些秘密密钥来对每个密码进行加密。密钥保存在服务器应用程序中(Kubernetes密钥),并与盐信息一起用于解密密码。

所以,我们将有一个这样的表:

+------------+-------------------------+---------------------+----+
|    Name    |        Password         |         Salt        | id |
+------------+-------------------------+---------------------+----+
| Provider 1 | 7c73c5a83fa580b5d6f8208 | feacbc02a3a697b0    | 23 |
| Provider 2 | 23291ac8bc335a1277a39d2 | 3a6acbc02a97b0fe    | 88 |
+------------+-------------------------+---------------------+----+

由于提供者的数量非常少(不超过20个),所以对我来说,每个提供者使用不同的盐似乎有点太多,但这是一个更安全的解决方案。

所以,我的问题是:这种解决方案对我的情况安全吗?

0 个答案:

没有答案