0

我正在使用 C# .NET 使用 SslStream 将大量大型文件从客户端上传到服务器。它的速度是未加密上传的两倍。延迟多少是正常的?

关于如何提高加密框架性能的任何建议?降低 pfx/pvk 的加密强度有帮助吗?如果有怎么办?欢迎所有提示。

编辑:在每个客户端会话中上传 1 个或多个文件。在我的测试中,有 1250 个。客户端使用相同的 SslStream 进行会话...

服务器代码:

private void OnAcceptTcpClient(IAsyncResult result)
{

    var client = _listener.EndAcceptTcpClient(result);
    Stream stream = client.GetStream();

    if (_cert != null)
    {
    var ssl = new SslStream(stream, false);
    ssl.AuthenticateAsServer(_cert, false, SslProtocols.Tls, false);
    stream = ssl;
    }
    // Processing block
    ...
}

客户代码:

public IAsyncResult BeginSend(string host, int port, bool bTls, AsyncCallback callback, object state)
{

    _client = new TcpClient(host, port) { NoDelay = NoDelay };
    Stream stream = _client.GetStream();

    if (bTls)
    {
    var ssl = new SslStream(stream, false, new RemoteCertificateValidationCallback((o, c, ch, er) => true));
    ssl.AuthenticateAsClient(host);
    stream = ssl;
    }
    // Send all files
    return BeginSend(stream, callback, state);

}               

非常感谢。

4

1 回答 1

0

您是否使用 X509 证书对发送到服务器的所有文件进行加密?我认为一种解决方案可能是在开始时使用 X509 证书,以便交换随机生成的对称加密密钥,然后使用它对要发送的文件进行加密。就像 https 一样。

另一个提示是查看加密数据是否变得太大。

于 2013-07-31T03:42:41.560 回答