将密码保存在注册表中作为"秘密"

Ass*_*vie 6 .net c# encryption passwords registry

我需要在某处(最好是注册表)存储我的用户名/密码,以便我的.Net应用程序可以使用它们代表用户登录某些远程服务.我知道可以将注册表中的值存储为"机密",这意味着它们使用Windows域用户令牌或其他东西进行加密.换句话说,我不想自己处理加密.

澄清一下:我不能存储密码的哈希值或盐或它们的任何东西.这些凭据适用于第三方系统,而且我能够代表我的用户登录此系统的唯一方法是以某种方式保留其凭据并能够恢复它们.

所以无论如何,我依旧记得在注册表中有这样一个地方,但细节是模糊的.我需要在C#中完成它(虽然如果它是简单的注册表访问它应该无关紧要).

编辑:还有一件事,它应该在Windows用户会话之间持续存在(如果在用户注销和打开后密码不可读,它对我没有帮助).

ove*_*ked 10

您可能正在考虑使用Data Protection API.搜索MSDN或阅读一些博客,看看它是否适合您.


Mic*_*ael 5

您可以尝试使用System.Security.Cryptography.ProtectedData,它可以使用每个用户密钥对它们进行加密. http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx.

它不是完全安全的,因为以用户身份运行的代码可以解密数据.