在Windows中安全地存储密码

Mug*_*gen 7 c# winapi password-protection account-management passwordvault

目前,我将我的用户名和密码存储在SQL Server CE数据库中.

我想使用一些Windows API来安全地存储我的用户密码,这样机器上运行的其他应用程序就无法读取它们.

我支持Windows 7,因此我无法使用密码保险库

我已经尝试使用CredWriteCredRead API,基于此处提供的示例.

但是,当我成功设法存储和恢复我的密码时,我也成功地设法使用完全不同的应用程序恢复它们.这意味着我唯一的安全就是我正在使用的密钥.

还有其他可行的解决方案吗?

似乎任何使用Windows安全帐户管理器的人都不会这样做.

Rem*_*anu 5

使用数据保护API(DPAPI)

数据受用户帐户凭据保护,因此可以由在同一帐户下运行的其他应用程序检索。或者,您可以使用计算机凭据来访问服务。

有关示例,请参见示例C程序:使用CryptProtectData

绝大多数应用程序都使用DPAPI来存储密码。

  • @Mugen在这种情况下使用密码,因此,即使您知道用户名,也无法在没有用户密码的情况下读取密码。请记住,在与用户帐户相同的上下文中运行的应用程序将能够读取信息,但这(总是)将是一个漏洞。 (3认同)