Windows上是否存在某种安全的本地存储?

Pau*_*ius 18 windows security encryption native .net-2.0

我在考虑制作一个小工具.这个工具会做什么并不重要.重要的是,该工具需要在用户的硬盘上存储一些敏感信息.编辑:将存储的信息是用户信息 - 我不是要保护我自己的内容,而是通过应用程序分发.

我知道我需要加密这些信息.但是,我在哪里可以安全地存储加密密码?这是某种无限递归......

那么,有没有办法加密Windows上的信息,并让Windows安全地管理密码?当我说Windows时,我指的是Windows XP SP2或更高版本.

我还应该注意,同一系统上的用户必须无法访问其他用户信息(即使他们都在运行我的应用程序).

我正在寻找这个问题的.NET 2.0(C#)和本机(C/C++)解决方案.

bob*_*nce 22

有没有办法,加密Windows上的信息,并安全地管理Windows密码?

CryptProtectData:http://msdn.microsoft.com/en-us/library/windows/desktop/aa380261( v=vs.85) .aspx

从.NET使用:http://msdn.microsoft.com/en-us/library/aa302402.aspx

历史上,受保护的存储(在XP中可用,在vista中只读):http://msdn.microsoft.com/en-us/library/bb432403%28VS.85%29.aspx

  • 对于.NET 2.0+,请使用System.Security.Cryptography.ProtectedData类而不是@ bobince的第二个链接. (3认同)

lig*_*t78 5

您应该考虑将DPAPI用于此目的.它将使用基于每个用户的特殊(内部)对称密钥对您的数据进行加密.在这种情况下,您甚至不需要请求密码,因为系统上的不同用户将分配不同的密钥.

它的缺点可能是,如果删除用户/重新安装Windows,则无法恢复数据(我相信情况确实如此,但不太确定).在这种情况下,使用从密码派生的"自生成"密钥加密数据,并将密码存储在使用DPAPI加密的注册表/文件中.