我有一个执行许多RSA签名操作的Web服务。我使用.net的CryptograhyProvider。这使用了Windows中的非托管CyptoAPI。
我经常遇到这个错误:
System.Security.Cryptography.CryptographicException:Der RPC-Server istfürdiesenVorgang zu stark ausgelastet。 [= rpc服务器也是 忙着完成交易]
贝 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(的Int32 hr)bei System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP, Int32 keyNumber,CspProviderFlags标志,对象cspObject, SafeKeyHandle&安培; hKey)bei System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters 参数)
我宁愿将DLLImport的RSA签名操作替换为高性能RSA C实现,而不是试图解决这个问题。
有人知道一个还是可以推荐一个?
OpenSSL比MS CryptoApi更快吗? 我还怀疑加载密钥可能会导致严重的开销。
谢谢!
答案 0 :(得分:3)
我会推荐OpenSSL,但我不知道与MS CryptoAPI的比较。它的使用和文档简单,以及示例源代码。
检查API here的详细说明。
答案 1 :(得分:2)
答案 2 :(得分:1)
http://www.cryptopp.com/ 可能是一个很好的图书馆。
它用于此速度测试: http://www.cryptopp.com/benchmarks.html
不幸的是,没有可用的OpenSSL进行比较