如何用代码实现将一个RSA密钥放入Windows系统的密钥容器中?

AhBian 2006-07-06 03:59:46
通常,可以通过以下代码来访问保存在 Windows 系统提供的密钥容器中的 RSA 密钥:
// Create the CspParameters object and set the key container
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = "MyKeyContainerName";

// Create a new instance of RSACryptoServiceProvider that
// accesses the key container MyKeyContainerName.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

以上代码中,如果在 Windows 系统中指定的命名密钥容器不存在,则会自动创建相应的密钥容器,同时将新 RSA 实例的密钥值储存到新创建的容器中。如果指定命名容器存在的话,则会自动取出容器中的 RSA 密钥,并创建相应的 RSACryptoServiceProvider。

但上述代码不能将一个已有的 RSA 密钥保存到指定命名的密钥容器中。我原来以为 Windows 系统不允许从外部保存密钥进容器,只能使用由系统自动生成的 RSA 密钥。
然而,.NET 强名称实用工具程序 SN.exe 却提供了将 RSA 密钥随意地存入密钥容器的命令项参数:
sn /i <infile> <container>
对应的导出操作为:
sn /pc <container> <outfile>

现在,我想用代码来自行实现 SN.exe 所提供的密钥保存到容器的功能,在此请教各位大侠。
...全文
301 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
setdefault 2007-04-26
  • 打赏
  • 举报
回复
mark一下
使用RSACryptoServiceProvider.ImportParameter和ExportParameter传递RSAParameters参数
AhBian 2006-08-20
  • 打赏
  • 举报
回复
如能实现,我可以分享利用这个技术的拓展成果。对于做共享软件的开发者来保护软件特别有用。
阿牛138588 2006-08-20
  • 打赏
  • 举报
回复
楼主果然高明
偶不懂
qpgsd 2006-08-20
  • 打赏
  • 举报
回复
不懂。帮顶
肄若芸 2006-08-20
  • 打赏
  • 举报
回复
顶一个
AhBian 2006-07-07
  • 打赏
  • 举报
回复
哎!无人指点,也无人帮顶。
AhBian 2006-07-06
  • 打赏
  • 举报
回复
期待高高高手
vagerent 2006-07-06
  • 打赏
  • 举报
回复
期待高高手.
AhBian 2006-07-06
  • 打赏
  • 举报
回复
期待高手。
新鲜鱼排 2006-07-06
  • 打赏
  • 举报
回复
学习,:)
zahuifan 2006-07-06
  • 打赏
  • 举报
回复
学习

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧