我发现和阅读的关于在数据库中正确存储密码的大部分信息都说我应该为每个用户散列具有唯一salt值的密码明文,然后将该散列存储在数据库中。但是这个过程对我的需求不起作用......
我有一个用C#编写的Windows服务,需要使用特定的服务帐户连接到不同数据中心的其他远程计算机。这些服务帐户就像域用户帐户,但它们背后没有真正的人,他们只具有在每个特定服务器上执行服务有效负载的适当权限。服务帐户信息存储在SQL Server表中,包括每个帐户的密码。目前,我使用对称加密(Rijndael)来模糊数据库表中的密码。密钥保存在具有严格访问权限的单独配置文件中。
每次服务具有在远程计算机上运行的计划有效负载时,我会在表上查找相应的服务帐户信息并使用密钥对其进行描述。还有一个内部网站,基本上是管理此服务的各种设置的前端,管理员可以在那里查看和更改服务帐户的密码。
这是保持安全的好方法吗?这个方案有明显的缺陷吗?
答案 0 :(得分:2)
听起来很明智。