日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

基本概念

代碼與實例


?

基本概念

這里要先介紹幾個類和函數

首先是QSslSocket:這個類提供了客戶端和服務器之間的SSL加密socket連接。這個是基于TCP連接,可以傳輸加密數據,支持的協議有SSL3和TLS1.2。

通過兩種方式建立安全連接,一種是使用即使的SSL握手,一個是延遲SLL握手。

在Qt中只要調用connectToHostEncrypted就可以建立一個安全的連接!

官方代碼如下:

QSslSocket *socket = new QSslSocket(this);connect(socket, SIGNAL(encrypted()), this, SLOT(ready()));socket->connectToHostEncrypted("imap.example.com", 993);

下面再介紹一個類:QSslCipher

QSslCipher:是SSL的加密密碼,通常是調用QSslSocket中的sessionCipher這個函數可以得到。

下面最后介紹一個類:QSslCertificate

顧名思義獲取X509證書的API。

?

?

代碼與實例

以百度為例!

程序運行截圖如下:

下面來看看百度的證書

程序源碼如下:

#include <QCoreApplication> #include <QSslSocket> #include <QObject> #include <QSslCipher> #include <QSslCertificate> #include <QList> #include <QDebug> #include <QEventLoop>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QSslSocket *socket = new QSslSocket;socket->connectToHostEncrypted("www.baidu.com", 443);QEventLoop loop;QObject::connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));loop.exec();//會話的套接字密碼qDebug() << "套接字密碼:↓";QSslCipher ciph = socket->sessionCipher();if(ciph.isNull()){qDebug() << "沒有設置套接字密碼,溜了!";return 0;}qDebug() << QString("%1, %2 (%3/%4)").arg(ciph.authenticationMethod()).arg(ciph.name()).arg(ciph.usedBits()).arg(ciph.supportedBits());//獲取認證信息qDebug() << "認證信息:↓";const QList<QSslCertificate> chainList = socket->peerCertificateChain();for(int i = 0; i < chainList.size(); i++){qDebug() << QString("%1%2 (%3)").arg(!i ? QString() : ("Issued by: ")).arg(chainList[i].subjectInfo(QSslCertificate::Organization).join(QLatin1Char(' '))).arg(chainList[i].subjectInfo(QSslCertificate::CommonName).join(QLatin1Char(' ')));qDebug() << "--------華麗的分割線--------";}qDebug() << "over";delete socket;return a.exec(); }

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。