缓解Web服务器上的RsaCryptoServiceProvider线程安全问题
||
我有一个
X509Certificate2
实例,并获得了PrivateKey
属性,即RsaCryptoServiceProvider
。 MSDN文档证明此“ 2”类不是线程安全的。因此,如果给出一些X.509证书,我需要对多个线程(通常在Web服务器上)执行非对称加密,那么创建“ 2”的多个实例的最佳方法是什么?
“ 0”上的私钥没有标记为可导出,因此我不能简单地将原始“ 2”上的参数导出并重新导入到另一个实例中,以解决线程安全问题。
我是通过X509Store
获取原始的,但是这似乎是X509Certificate2
实例的集合,因此,如果我想要RsaCryptoServiceProvider
的新实例,则必须实例化新的X509Store
来找到新的X509Certificate2
,以获得新的RsaCryptoServiceProvider
。仅仅让.NET克隆RsaCryptoServiceProvider
实例似乎很繁重。
有没有更好的方法?
没有找到相关结果
已邀请:
1 个回复
甲车劲
,尽管它的MSDN文档指出它不是线程安全的,但它似乎足以一次加密/解密多个线程的线程安全。我编写了以下应用程序来使用此类测试高并发性,并且该应用程序没有崩溃或无法正确加密/解密: