天天看點

Qt之HTTPS登入簡述HTTPS和HTTP的差別使用說明使用方式結果處理

https(全稱:hyper text transfer protocol over secure socket layer),是以安全為目标的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl,是以加密的詳細内容需要ssl。它是一個uri scheme(抽象辨別符體系),句法類同http:體系。用于安全的http資料傳輸。https:url表明它使用了http,但https存在不同于http的預設端口及一個加密/身份驗證層(在http與tcp之間)。這個系統的最初研發由網景公司(netscape)進行,并内置于其浏覽器netscape navigator中,提供了身份驗證與加密通訊方法。現在它被廣泛用于網際網路上安全敏感的通訊,例如交易支付方面。

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#https%e5%92%8chttp%e7%9a%84%e5%8c%ba%e5%88%ab">https和http的差別</a>

<a href="#%e4%bd%bf%e7%94%a8%e8%af%b4%e6%98%8e">使用說明</a>

<a href="#md5%e5%8a%a0%e5%af%86">md5加密</a>

<a href="#https%e7%99%bb%e5%bd%95">https登入</a>

<a href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e5%bc%8f">使用方式</a>

<a href="#%e7%bb%93%e6%9e%9c%e5%a4%84%e7%90%86">結果處理</a>

超文本傳輸協定http被用于在web浏覽器和網站伺服器之間傳遞資訊。http協定以明文方式發送内容,不提供任何方式的資料加密,如果攻擊者截取了web浏覽器和網站伺服器之間的傳輸封包,就可以直接讀懂其中的資訊,是以http協定不适合傳輸一些敏感資訊,比如信用卡号、密碼等。

為了解決http協定的這一缺陷,需要使用另一種協定:安全套接字層超文本傳輸協定https。為了資料傳輸的安全,https在http的基礎上加入了ssl協定,ssl依靠證書來驗證伺服器的身份,并為浏覽器和伺服器之間的通信加密。

https和http的差別主要為以下四點:

https協定需要到ca申請證書,一般免費證書很少,需要交費。

http是超文本傳輸協定,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協定。

http和https使用的是完全不同的連接配接方式,用的端口也不一樣,前者是80,後者是443。

http的連接配接很簡單,是無狀态的;https協定是由ssl+http協定建構的可進行加密傳輸、身份認證的網絡協定,比http協定安全。

關于網絡接口的調用這裡不再過多說明,因為一般接口都會有詳細的文檔,比如:請求方式get/post、參數格式、傳回類型等。

下面以https為例,描述一個完整的登入過程,也适用于http及其它形式網絡互動,比如:使用者認證、上傳、下載下傳等。

為了安全起見,都會對敏感資料進行加密,而最常用的基本都是md5。

進行ssl認證、設定傳輸的參數、設定消息頭、開始請求、處理傳回結果。

一般來說常用的傳回格式為json、xml,當然也可以用特定格式的字元串,但大多數都是json較多。

得到結果後,我們就可以對傳回的json進行解析,然後處理!

正确:

“{“user_id”:”self-666666666_qt-mr2sj_9iu92fwd-pqalbtwl6zgtafa”,”role”:1,”sex”:0,”user_name”:”test”,”create_date”:1449449966000}”

錯誤:

{“msg”:”user_name=test and password is error.”,”code”:418,”error_msg”:”password is invalid”}