解决Qt5使用SSL的“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”错误
时间: 2024-03-26 12:35:00 浏览: 112
Qt实现的SSL通信客户端和服务器
5星 · 资源好评率100%
这个错误是因为 OpenSSL 库默认不支持 SSLv2 协议,而 Qt5 默认使用的是 SSLv2_client_method。解决这个问题,需要在使用 QSslSocket 之前手动设置它的加密方法。
以下是解决方法:
```cpp
#include <QSslSocket>
...
// 在使用 QSslSocket 之前,设置加密方法
QSslSocket::sslLibraryInit();
// 获取支持的加密方法
QList<QSslCipher> ciphers = QSslSocket::supportedCiphers();
// 设置加密方法
QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
sslConfig.setProtocol(QSsl::AnyProtocol);
sslConfig.setCiphers(ciphers);
// 创建 QSslSocket 对象,并设置加密配置
QSslSocket *socket = new QSslSocket(this);
socket->setSslConfiguration(sslConfig);
```
这样就可以解决该错误了。
阅读全文