NodeJS存储需要解密和读取的加密数据库密码,而不是用户密码?

时间:2018-12-20 18:07:41

标签: node.js encryption passwords password-encryption

我正在为多租户应用程序构建节点api,并且正在使用内存中的租户目录,该目录存储所有连接字符串以连接到每个租户的数据库。

即使该帐户可以执行的操作以及这些特定帐户可以连接到数据库的来源都受到限制,我什至甚至不想考虑将这些密码存储为纯文本。

我以前使用过bcrypt,但由于其具有“单向”性质,因此我真的无法使用“存储”密码。

在NODE应用程序中是否有安全的方法来处理这些问题?

1 个答案:

答案 0 :(得分:1)

Node带有crypto,是现成的,您可以使用它使用已知的私钥(密码)进行基本的对称加密。大概该密钥存储在您的应用程序可以访问的安全位置,但不在数据库或源代码中。

这是一个简单的示例:https://lollyrock.com/posts/nodejs-encryption/

这为您提供了静态加密,这可能是一个很好的“以防万一”的安全预防措施。根据您所使用的数据库,您可能可以选择不使用应用程序进行更改的静态加密-例如,如果您是AWS商店,则可以选择制作encryption invisible to your application。否则,您将需要在读写行时进行解密和加密。