我的机器上的RSACryptoServiceProvider有一些问题。如果创建一个新实例:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();在CspKeyContainerInfo属性下,我已经得到了一个异常:
'System.Security.Cryptography.CryptographicException‘bool {System.Security.Cryptography.CryptographicException}
如果我在另一台PC上尝试相同的代码,一切正常。我的PC上是否有一些设置,我可以检查它们是否都配置正确,以及配置是否延迟?知道问题出在哪里了吗?
谢谢
编辑:它似乎只发生在框架4.0上。有线索吗?
发布于 2011-02-13 17:58:06
我设法让它运转起来了。
CspParameters parms = new CspParameters();
parms.Flags = CspProviderFlags.NoFlags;
parms.KeyContainerName = Guid.NewGuid().ToString().ToUpperInvariant();
parms.ProviderType = ((Environment.OSVersion.Version.Major > 5) || ((Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor >= 1))) ? 0x18 : 1;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(parms);我不知道为什么,但就是这样。如果有人知道这种行为的原因,那么欢迎发表更多的评论。
谢谢
发布于 2011-08-03 14:59:47
您可以在windows注册表中获取提供程序类型:\local_machine\software\Microsoft\Cryptography\Defaults\Provider\
查找您想要的提供者并检查Type值.
https://stackoverflow.com/questions/4983698
复制相似问题