我知道加密密码可以存储在 web.config 中,或者散列和加盐密码可以存储在数据库中,但是是否可以将密码存储在密钥库之类的东西中?
密钥库甚至是存储应用程序所需的“服务帐户”密码的好主意吗?
与 .NET/Windows 世界中的 Java 密钥库最接近的类似物是 DPAPI ( http://en.wikipedia.org/wiki/Data_Protection_API )。它将加密值存储在 Windows 注册表中,加密密钥源自系统或用户帐户级别的机密。
尽管在 2010 年 Black Hat DC 会议上发布了一篇论文,详细说明了对它的破解(谷歌文档),但它的使用相当广泛。
在那篇论文之前(如果 MS 在某个时候修复它),我强烈推荐 DPAPI 来准确描述您所描述的内容。
在这一点上,使用 DPAPI 可能(不幸的是)是最好的选择。一个缓解因素是该破解技术性很强,难以执行,并且需要相当多的操作系统访问权限才能完成。DPAPI 密钥的泄露最有可能由有权访问系统的受信任内部人员实施,而不是外部攻击者。