4

我正在尝试通过 C# .Net 应用程序中的 SslStream 连接到服务器。

当我尝试向服务器进行身份验证时,我在客户端收到一条错误消息,提示Received an unexpected EOF or 0 bytes from the transport stream。

在服务器端出现的错误是:引起:javax.net.ssl.SSLHandshakeException:没有共同的密码套件。

在 Java 中,以下代码用于设置密码:

SSLSocket sslSocket = (SSLSocket) socket;
String[] suites = sslSocket.getSupportedCipherSuites();
sslSocket.setEnabledCipherSuites(suites);

有人能告诉我 C# 中的等价物是什么吗?

提前致谢,

4

1 回答 1

0

出现此问题是因为您使用不同的密文进行呼叫,要进行成功的通信,您必须选择两端通用的密文,因为不同的密文会产生不同的密文

以下是默认提供的套装【你也可以自己做】

C#-
SslAlgorithms.ALL |
SslAlgorithms.RSA_3DES_168_SHA |
SslAlgorithms.RSA_AES_128_SHA |
SslAlgorithms.RSA_AES_256_SHA |
SslAlgorithms.RSA_DES_40_SHA |
SslAlgorithms.RSA_DES_56_SHA |
SslAlgorithms.RSA_RC2_40_MD5 |
SslAlgorithms.RSA_RC4_128_MD5 |
SslAlgorithms.RSA_RC4_128_SHA |
SslAlgorithms.RSA_RC4_40_MD5 |
SslAlgorithms.SECURE_CIPHERS | SslAlgorithms.NULL_COMPRESSION

Java-
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_DSS_WITH_DES_CBC_SHA",
"SSL_RSA_EXPORT_WITH_RC4_40_MD5",
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
"SSL_DH_anon_WITH_RC4_128_MD5",
"TLS_DH_anon_WITH_AES_128_CBC_SHA",
"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_WITH_DES_CBC_SHA",
"SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
"SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"
于 2016-07-12T19:02:53.453 回答