存储安全信息以供进一步使用的最佳方法是什么?

时间:2010-08-27 11:02:46

标签: windows algorithm security passwords desktop-application

我的桌面应用程序要求用户提供代理服务器凭据以便稍后使用它。但是,存储此安全信息以供进一步使用的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

在Windows中,您可以使用CryptProtectData功能使用帐户密码加密数据,然后将加密数据存储在注册表或配置文件中。这样您根本不需要输入任何密码。

答案 1 :(得分:1)

询问用户主密码并使用该密码加密与该用户相关的所有凭据和其他信息。首次请求此数据时请求此密码(就像FireFox在您的站点登录/通过时一样)。

如果你想构建没有来自用户的主密码的系统,你会有一个不安全的系统,因为你需要用一些密钥来加密用户数据,这些密钥将存储在你的应用程序中,而这又可以是反向的 - 工程和密钥可以提取。

答案 2 :(得分:0)

除了Eugene的评论之外,在像Ubuntu这样的基于Gnome的系统上,您可以使用GNOME Keyring来保存加密的信息。在KDE上你可以使用等效的KWallet,在Mac OS X上你可以使用Keychain。

我肯定会很努力地使用这些操作系统而不是编写自己的操作系统。不幸的是,它们每个都有不同的接口,但你必须使用的API并不是很复杂。