我正在用 C# 开发软件,直到现在我一直在使用 .NET 中包含的密码库(尤其是 .NET AesCryptoServiceProvider
),但现在我有特殊需求,我需要转向 Bouncy Castle API。我进行了一些测试,发现这些 API 与 .NET 框架中包含的 API 相比要慢一些。关于如何提高他们的表现的任何想法?这是我正在使用的密码:
IBufferedCipher cipher = new CtsBlockCipher(new CbcBlockCipher(new AesFastEngine()));
更具体地说,我需要转移到 Bouncy Castle API,因为我需要具有相同长度的输入和输出文件,并且 .NET RijndaelManaged
(唯一可以确保这种行为的类)比 .NET 慢得多AesCryptoServiceProvider
。
在我的机器上加密一个 1.7MB 的文件AesCryptoServiceProvider
大约需要 40 毫秒,而使用 Bouncy Castle 大约需要 170 毫秒。它看起来不多,但我需要在每分钟有数百个请求的服务器中使用这个软件......
非常感谢!!