当前位置: 首页 > 编程语言 > C#

如何在机器级RSA密钥容器中存储公钥分享

时间:2023-04-11 03:35:16 C#

如何在机器级RSA密钥容器中存储公钥当只存储公钥/私钥对的公钥时,我在I使用机器级RSA密钥容器时出现问题。以下代码创建了一个公共/私有对并从该对中提取公钥。对和公钥存储在单独的密钥容器中。然后从那些密钥容器中获取密钥,此时它们应该与进入容器的密钥相同。该代码可以很好地为CspParameters.Flags指定CspParameters.Flags(即从PublicKey容器中读回的密钥是相同的),但是当为CspParameters.Flags指定CspParameters.Flags时,从PublicKey中读回的密钥是不同的。为什么行为不同,我需要做什么才能从机器级RSA密钥容器中检索公钥?varpublicPrivateRsa=newRSACryptoServiceProvider(newCspParameters(){KeyContainerName="PublicPrivateKey",Flags=CspProviderFlags.UseMachineKeyStore//Flags=CspProviderFlags.UseDefaultKeyContainer}){PersistKeyInCsp=true,};varpublicRsa=newRSACryptoServiceProvider(newCspParameters(){KeyContainerName="PublicKey",Flags=CspProviderFlags.UseMachineKeyStore//Flags=CspProviderFlags.UseDefaultKeyContainer}){PersistKeyInCsp=true};//导出密钥。公共Rsa。ImportParameters(publicPrivateRsa.ExportParameters(false)ml);控制台.WriteLine(假));Console.WriteLine(publicPrivateRsa.ToXmlString(false));//处理这两个CSP。使用(publicRsa){publicRsa.Clear();}使用(publicPrivateRsa){publicRsa.Clear();}publicPrivateRsa=newRSACryptoServiceProvider(newCspParameters(){KeyContainerName="PublicPrivateKey",Flags=CspProviderFlags.UseMachineKeyStore//Flags=CspProviderFlags.UseDefaultKeyContainer});publicRsa=newRSACryptoServiceProvider(newCspParameters(){KeyContainerName="PublicKey",Flags=CspProviderFlags.UseMachineKeyStore//Flags=CspProviderFlags.UseDefaultXmlRubStringContainers}Write(Tool)false));Console.WriteLine(publicPrivateRsa.ToXmlString(false));使用(publicRsa){publicRsa.Clear();}使用(publicPrivateRsa){publicRsa.Clear();似乎密钥容器不是为此目的而设计的(这在“Howto:StoringAsymmetricKeysinKeyContainersinthe.NETFrameworkDeveloper'sGuide”中有所暗示,并由MSDN上的讨论证实)需要使用其他机制(例如将密钥存储在XML文件中)以实现此目的。这个链接可以帮助你。http://msdn.microsoft.com/en-IN/library/tswxhw92(v=vs.80).aspxvarcp=newCspParameters();cp.KeyContainerName=ContainerName;//创建一个访问密钥容器的RSACryptoServiceProvider的新实例。RSACryptoServiceProviderrsa=newRSACryptoServiceProvider(cp);//删除容器中的密钥条目.rsa.PersistKeyInCsp=false;//调用Clear释放资源并从容器中删除key.rsa.Clear();这就是它所说的关于密钥删除的内容。以上就是《C#学习教程:如何在机器级RSA密钥容器中存储公钥》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: