我有一个富客户端应用程序,它连接到一组支持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信息,您必须使用此帮助程序代码直接与主机通信.