要安全地存储密钥,应将密钥存放在密钥容器中,而不是明文存放在文件中。
如果您不了解密钥容器,可以参照 MSDN 上的 了解计算机级别和用户级别的 RSA 密钥容器 。
CspParameters 的名称空间是:
System.Security.Cryptography创建和读取密钥容器
CspParameters cp = new CspParameters(); cp.KeyContainerName = ContainerName; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);创建和读取密钥容器都使用上述代码:如果密钥容器不存在,则会自动创建,并将 rsa 产生的密钥存入其中;如果已经存在,则会读取其中的密钥给 rsa。
删除密钥容器
CspParameters cp = new CspParameters(); cp.KeyContainerName = ContainerName; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); rsa.PersistKeyInCsp = false; rsa.Clear();与创建和读取相比,多了两句。
安全性:程序 A 创建和密钥容器,程序 B 可以去读吗?
可以。如果要限制程序 B 去读,请参见上面提到的了解计算机级别和用户级别的 RSA 密钥容器 。
转载于:https://www.cnblogs.com/deepwishly/archive/2009/12/25/2551326.html