如何安全存储各种凭证?
How to Securely Store Various Credentials?
背景: 我正在开发一个应用程序(用于学校项目),它将本质上成为网络资产管理和修复工具。它将扫描网络中的设备,收集有关它们的信息并做一些与问题无关的其他事情。它具有的一项功能是允许用户为各种网络设备提供登录凭据,以便应用程序可以登录到这些设备,以便它可以收集更多信息,然后允许进行更改。
我的问题:我如何才能安全地存储那些提供的凭据。目前,后端将由一个 PostgreSQL 数据库(其中将包含扫描数据)组成,但我不确定将它们存储在那里是否安全,或者我应该如何解决安全存储它们的问题,以便它们可能以后用到。
P.S.: 如果您需要任何其他信息,请告诉我,我是使用堆栈溢出的新手,所以我不确定我是否提供了足够的细节。谢谢。
https://www.postgresql.org/docs/current/static/pgcrypto.html
文档非常具体,包含示例。每个数据库创建一次扩展:
t=# create extension pgcrypto;
CREATE EXTENSION
假设密码是 Ирландия
,然后使用随机盐:
t=# select crypt('Ирландия', gen_salt('md5'));
crypt
------------------------------------
$gMymr.0W$axxTHvfmsNRDkepNAMNsT1
(1 row)
或:
t=# select crypt('Ирландия', gen_salt('md5'));
crypt
------------------------------------
$wjJDa4Np$M7XqQIrgnfpAf.CLtrpkv1
(1 row)
每次都有不同的结果,所以请使用其中任何一个来检查密码是否正确,例如:
t=# select crypt('Ирландия', '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1') = '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1' as match;
match
-------
t
(1 row)
错误:
t=# select crypt('ИрландияNOT', '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1') = '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1' as match;
match
-------
f
(1 row)
上述函数的参数在 F.26.2 部分。密码哈希函数
背景: 我正在开发一个应用程序(用于学校项目),它将本质上成为网络资产管理和修复工具。它将扫描网络中的设备,收集有关它们的信息并做一些与问题无关的其他事情。它具有的一项功能是允许用户为各种网络设备提供登录凭据,以便应用程序可以登录到这些设备,以便它可以收集更多信息,然后允许进行更改。
我的问题:我如何才能安全地存储那些提供的凭据。目前,后端将由一个 PostgreSQL 数据库(其中将包含扫描数据)组成,但我不确定将它们存储在那里是否安全,或者我应该如何解决安全存储它们的问题,以便它们可能以后用到。
P.S.: 如果您需要任何其他信息,请告诉我,我是使用堆栈溢出的新手,所以我不确定我是否提供了足够的细节。谢谢。
https://www.postgresql.org/docs/current/static/pgcrypto.html 文档非常具体,包含示例。每个数据库创建一次扩展:
t=# create extension pgcrypto;
CREATE EXTENSION
假设密码是 Ирландия
,然后使用随机盐:
t=# select crypt('Ирландия', gen_salt('md5'));
crypt
------------------------------------
$gMymr.0W$axxTHvfmsNRDkepNAMNsT1
(1 row)
或:
t=# select crypt('Ирландия', gen_salt('md5'));
crypt
------------------------------------
$wjJDa4Np$M7XqQIrgnfpAf.CLtrpkv1
(1 row)
每次都有不同的结果,所以请使用其中任何一个来检查密码是否正确,例如:
t=# select crypt('Ирландия', '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1') = '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1' as match;
match
-------
t
(1 row)
错误:
t=# select crypt('ИрландияNOT', '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1') = '$gMymr.0W$axxTHvfmsNRDkepNAMNsT1' as match;
match
-------
f
(1 row)
上述函数的参数在 F.26.2 部分。密码哈希函数