win7 64位ComputeSignature(signer)签字出错

win7 64位ComputeSignature(signer)签名出错
本帖最后由 wjmo520 于 2014-06-05 10:25:49 编辑
有谁遇到同样的问题,在win7 64位下运行时出现错误 “指定了无效的提供程序类型”;而在XP下运行时是可以正常加解密的,
求各路支招 ?有什么方法可以解决这个错误使其正常加解密?

如下图:


win7 64位ComputeSignature(signer)签字出错
------解决方案--------------------
你是在站点上运行的吗?如果是,IIS设置里有个兼容32位的设置或者编译为64位
------解决方案--------------------
你在程序里面加密用的是什么算法?是在CMS类中用SHA-2或AES算法吗?

如果是的话,请看"Invalid provider type specified" when using CNG providers with .NET CMS classes。在Vista及以后的系统中(所以在XP上可以运行),用上面的算法需要CNG程序支持,但是.NET还不支持CNG。文章中提供了一个替代解决方案及代码的链接,试一下是否可以解决问题。
------解决方案--------------------
你检查一下是不是下面链接中提到的原因,就是在导出pfx的时候没有设置密码,也没有设置X509KeyStorageFlags。如果是的话,页面最后有解决方法
RSACryptoServiceProvider error(s)

X509KeyStorageFlags flags = X509KeyStorageFlags.Exportable;
certWithPubKey = new X509Certificate2(certPath,"password",flags);

------解决方案--------------------
如果代码不涉及保密的话,发一份到邮箱(1913 2707 24,去掉空格后加@qq.com)。可以一起看看能不能解决。
------解决方案--------------------
放着以后学习了