2011-07-06 145 views
1

我正在寻找一个合并透明安全性的应用程序。据我所知,这意味着密钥存储在某个地方,每次需要密钥时都会使用密钥。什么是存储加密密钥的最佳方式?

如果我在附近的任何地方......我如何在本地离线存储密钥?

在我的应用程序中,我主要对Windows(理想的.Net)解决方案感兴趣。

+1

如此透明,没有人注意到了安全加密?甚至不是坏人? :-) –

+0

您是为本地存储器加密数据,还是要与其他计算机或服务器通信? –

+0

我正在寻找加密文件,因为他们被添加到保管箱文件夹(我知道有那里可以做像PGP或Truecrypt这样的东西,但我很欣赏挑战),我希望钥匙被存储在本地以外的地方保管箱文件夹。 –

回答

2

做到这一点w /合理的安全级别的一种方法是使用System.Security.Cryptography.ProtectedData类公开的DPAPI功能。

此方法可用于加密 数据,如密码,密钥或 连接字符串。可选的熵参数 使您可以添加数据以提高加密的复杂度 ;为 指定Nothing没有额外的复杂性。如果提供了 ,则在使用解除保护方法解密数据时,还必须使用此信息。 。

您可以在两个位置

  • CurrentUser
    受保护的数据与当前用户相关的数据保护。只有在当前用户上下文下运行的线程才能解除数据保护。

  • LocalMachine
    受保护的数据与机器上下文相关联。计算机上运行的任何进程都可以取消数据保护。此枚举值通常用于服务器特定的应用程序,该应用程序在不允许不受信任的用户访问的服务器上运行。

最终的数据与您的窗口(或机器)的凭据

相关问题