我需要在我的程序中实现“记住密码”选项,它适用于客户端 - 服务器协议,需要在登录过程中传递整个密码,而不仅仅是哈希,所以我需要在本地存储整个密码。我搜遍了整个地方,但我没有找到确凿的答案或根本没有答案。但是,由于电子邮件客户端,互联网浏览器,IM客户端这样做,它应该是不可能的......
那么,最好的方法是什么?
由于
答案 0 :(得分:4)
1)不要这样做。无论您的安全性如何, 存储 密码仍然更好。
答案 1 :(得分:2)
我会使用CredentialsUI。 There's an article on MSDN解释如何在.NET中使用它。
我很确定这是现代电子邮件客户端,互联网浏览器等所使用的内容。它提供了保存凭据的选项,使用DPAPI加密。
我已经创建了一个C#包装类,可以让它从托管应用程序中轻松使用。
答案 2 :(得分:0)
这是一个相关的问题。 Windows equivalent of OS X Keychain?
您的应用必须在某个时间以明文形式获取密码。 你只能让攻击者更难。 这是一种安全/努力权衡。
答案 3 :(得分:-1)
.NET提供了所谓的“隔离存储”功能,您可以在其中存储此类数据。在this MSDN article中,还提供了如何加密隔离存储以保护存储数据的参考。