C# 如何提高Bouncy Castle API的加密速度?
我正在用C#开发一个软件,直到现在我一直在使用.NET中包含的加密库(特别是C# 如何提高Bouncy Castle API的加密速度?,c#,performance,encryption,aes,bouncycastle,C#,Performance,Encryption,Aes,Bouncycastle,我正在用C#开发一个软件,直到现在我一直在使用.NET中包含的加密库(特别是AESCryptServiceProvider),但现在我有特殊需要,需要转到Bouncy Castle API。我做了一些测试,发现这些API与.NET框架中包含的API相比速度较慢。关于如何提高他们的表现有什么想法吗? 这是我正在使用的密码: IBufferdCipher cipher=新的CtsBlockCipher(新的CbcBlockCipher(新的AesFastEngine()) 更具体地说,我需要转到Bo
AESCryptServiceProvider
),但现在我有特殊需要,需要转到Bouncy Castle API。我做了一些测试,发现这些API与.NET框架中包含的API相比速度较慢。关于如何提高他们的表现有什么想法吗?
这是我正在使用的密码:
IBufferdCipher cipher=新的CtsBlockCipher(新的CbcBlockCipher(新的AesFastEngine())代码>
更具体地说,我需要转到Bouncy Castle API,因为我需要具有相同长度的输入和输出文件,并且.NETRijndaelManaged
(唯一可以确保这种行为的类)比AESCryptServiceProvider
慢得多
要使用AESCryptServiceProvider对1.7MB的文件进行加密,在我的机器上大约需要40毫秒,使用Bouncy Castle大约需要170毫秒。看起来不多,但我需要在每分钟有数百个请求的服务器上使用这个软件
非常感谢 因为听起来你需要一个流密码,也许可以研究一下。一般来说,它应该很快。Bouncy Castle有一个实现() 我不知道为什么,但就速度而言,AESCryptServiceProvider
类要比Bouncy Castle中的Salsa20Engine
快得多。也许,这是本机代码问题。有很多处理器优化可以用于加密,这可能就是为什么内置托管api对于Rijndael来说也慢得多的原因。如果你真的很重视速度,你可以看看公共域程序集优化版本:Hi@jbtule。为了确保我找到了你,使用SALSA20引擎,我可以执行流式PGP加密?如果是这样,在加密过程中的什么时候添加Salsa20引擎?我正在尝试优化现有的大文件进程加密,使用带有逐字节动态加密的缓冲流。我不知道在Salsa20中应该放在哪里,仍然使用参数(filename、moddate和key)