我正在编写(使用 C# 和 .NET 3.5)一个管理应用程序,它将轮询多个 Windows 系统以获取各种数据位。在许多情况下,它会使用 WMI,但在某些情况下,它可能需要读取远程注册表或在轮询系统上远程执行某些命令或脚本。这种轮询将以重复的时间间隔发生——通常是每晚,但可以配置为更(或更不)频繁地发生。因此,投票可能每 10 分钟一次或每月一次。它需要以自动化方式发生,无需任何人为干预。
这些功能将需要对轮询系统的管理员级别访问权限。现在,我希望在大多数用例中,会有一个域,并且轮询应用程序可以作为具有域管理员(或同等)权限的服务运行,这意味着我不必担心存储密码 - 管理员设置该应用程序将通过标准 Windows 机制定义服务的用户名/密码。
但总有一些害群之马。该程序可能在非域环境中运行,或者在某些轮询系统不是域成员的情况下运行。在这些情况下,我们必须定义用户名和密码,安全地存储它们,然后在我们轮询该系统时调用该用户/密码对。所以请记住 - 在这种情况下,正在编写的程序是向身份验证系统发送密码的用户。
我不确定我是否需要使用可逆散列,然后在使用时将其解密为明文,或者是否有某种 Windows 机制允许我存储然后仅重用散列。显然第二种机制更可取;我希望我的程序永远不知道密码的明文值,或者在尽可能短的时间内知道它。
我需要有关智能和安全方法的建议来完成此任务。
感谢您的关注!
最佳答案
关于c# - 存储 Windows 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47262/