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>