c# – 如何确定SSL连接的“强度”

我有一个富客户端应用程序,它连接到一组支持Web服务,其中连接由SSL保护.我需要确定用于实际SSL流的加密的“强度”,以便将此信息显示给最终用户.

我的理解是客户端和服务器将协商它们之间的对称加密方法(SSL / TLS)与不同的加密级别(40,56,128,256).有什么办法可以检测出来自HttpWebRequest / ServicePoint / C#代码中的其他模式?

最佳答案 这扩展了@Alex的帖子,显然添加了你自己的错误处理

        System.Net.Sockets.TcpClient TC = new System.Net.Sockets.TcpClient();
        TC.Connect("mail.google.com", 443);
        using (System.Net.Security.SslStream Ssl = new System.Net.Security.SslStream(TC.GetStream()))
        {
            Ssl.AuthenticateAsClient("mail.google.com");
            Console.WriteLine(Ssl.CipherAlgorithm);
            Console.WriteLine(Ssl.CipherStrength);
        }
        TC.Close();

我不认为您可以直接从Web服务访问SSL信息,您必须使用此帮助程序代码直接与主机通信.

点赞