我需要在客户端 .NET 应用程序(Outlook 插件)上安全地存储用户/密码对。
加密需要是可逆的,我很高兴避免在我的代码中存储加密密钥,因为它很容易通过反汇编。
事实上,我想访问一个类似EFS的 API 来将加密委托给 Windows。
关于这个问题的任何提示?
我需要在客户端 .NET 应用程序(Outlook 插件)上安全地存储用户/密码对。
加密需要是可逆的,我很高兴避免在我的代码中存储加密密钥,因为它很容易通过反汇编。
事实上,我想访问一个类似EFS的 API 来将加密委托给 Windows。
关于这个问题的任何提示?
如果您有权访问 .Net 4.0,那么我推荐封装 windows DPAPI 的 ProtectedData 类,这是在 windows 中加密客户端计算机上数据的推荐方法。否则,您可以直接 P/Invoke DPAPI 来执行此操作。
请注意,如果您试图阻止用户读取密码,那么这并不会真正阻止他们。如果他们有权访问他们的系统,那么 DPAPI 不会阻止他们。最好的办法是根本不存储密码并要求他们登录,或者如果你可以连接到使用 SSPI 进行集成 Windows 身份验证的东西,那么你就有了最好的解决方案。
但是,如果不知道自己想要实现什么,就很难知道自己需要什么。