Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何提高Bouncy Castle API的加密速度?_C#_Performance_Encryption_Aes_Bouncycastle - Fatal编程技术网

C# 如何提高Bouncy Castle API的加密速度?

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

我正在用C#开发一个软件,直到现在我一直在使用.NET中包含的加密库(特别是
AESCryptServiceProvider
),但现在我有特殊需要,需要转到Bouncy Castle API。我做了一些测试,发现这些API与.NET框架中包含的API相比速度较慢。关于如何提高他们的表现有什么想法吗? 这是我正在使用的密码:
IBufferdCipher cipher=新的CtsBlockCipher(新的CbcBlockCipher(新的AesFastEngine())

更具体地说,我需要转到Bouncy Castle API,因为我需要具有相同长度的输入和输出文件,并且.NET
RijndaelManaged
(唯一可以确保这种行为的类)比
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)