在Windows中以加密格式存储内容(并非所有人都可以访问)

时间:2018-09-04 09:10:41

标签: c# windows registry

我需要知道一些建议,如果我想存储一些特定的东西,例如密码或一些机密信息,这些信息在一个管理员下对所有用户都不可见,那么只有管理员才能访问它。早些时候,我计划将其以加密格式存储在注册表中,但是即使这样似乎也不安全,每个人都可以使用它。

还有其他方法可以将东西存储在Windows中的某个位置吗?请提出一些建议。

1 个答案:

答案 0 :(得分:1)

您可以使用DPAPI。这是一种用于敏感数据的简单加密和解密方法。它允许将对加密数据的访问限制为用户或计算机。就这么简单(取自链接页面上的示例):

byte [] secret = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 };
ProtectedMemory.Protect( secret, MemoryProtectionScope.SameLogon );
ProtectedMemory.Unprotect( secret, MemoryProtectionScope.SameLogon );

我不确定这是否能满足您的要求,dpapi与Windows登录密码一样安全,一旦登录,就可以解密数据(取决于保护范围)。有关讨论,请参见this SO问题。