lenmom

博客园 首页 新随笔 联系 订阅 管理

https://www.cnblogs.com/lovablebox/archive/2007/12/05/983599.html

1. C#代码操作秘钥容器

//访问保存在系统中的秘钥容器:
CspParameters cp = new CspParameters();
cp.KeyContainerName = "demo";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);
//如果在Windows系统中指定的命名密钥容器不存在,则会自动创建相应的密钥容器,同时将新 RSA 实例的密钥值储存到新创建的容器中。
//如果指定命名容器存在的话,则会自动取出容器中的RSA密钥,并创建相应的 RSACryptoServiceProvider。

 

//秘钥容器的保存路径为:
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), @"Microsoft\Crypto\RSA\MachineKeys");
//具体为:
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys


//获取秘钥文件文件名:
CspParameters cp = new CspParameters();
cp.KeyContainerName = "demo";
cp.Flags = CspProviderFlags.UseExistingKey | CspProviderFlags.UseMachineKeyStore;
CspKeyContainerInfo info=new CspKeyContainerInfo(cp); 
string containerName= info.UniqueKeyContainerName;

 

 

2. .net 强名工具操作秘钥

NET强名称实用工具程序SN.exe却提供了将RSA密钥随意地存入密钥容器的命令项参数: 

sn /i <infile> <container> 


对应的导出操作为:

sn /pc <container> <outfile>

 

 

reference

https://www.cnblogs.com/chenjx/p/7107630.html

posted on 2021-01-27 14:21  老董  阅读(143)  评论(0编辑  收藏  举报