如何存储加密密钥.NET

时间:2014-07-21 04:36:08

标签: c# .net encryption

我的.NET应用程序包含一些RSA加密。 我的问题是:where to store the keys

经过一段时间的谷歌后,我看不到任何真正的建议。我所看到的

  1. 拆分它们并存储到不同的文件夹中。
  2. 使用ProtectedData。但如果我使用受保护的数据,我仍然需要存储密钥的加密结果。还有同样的问题,在哪里储存它?
  3. 有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

标准方法是将密钥存储在密钥容器中,net有一个API来执行此操作。看到 How to: Store Asymmetric Keys in a Key Container 您可以将密钥容器存储为私有容器,在这种情况下,只有您可以访问密钥。如果要在计算机中共享不同用户或程序之间的密钥,则应使用机器级密钥容器。要在机器级别存储,您只需要在容器的参数中添加标志UseMachineKeyStore

CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;
cp.Flags = UseMachineKeyStore 

请记住,只要您使用机器密钥存储,就需要设置标记。这种配置有一些安全音乐会可靠的信息是多么明智。您可以使用访问规则限制对创建容器的访问。

我希望这些信息对您有用。