Volley實現Https的單向認證

2021-09-20 05:06:42 字數 928 閱讀 1976

https通訊流程圖

實現https的單向認證,首先需要生成乙個公鑰和私鑰,並且拿公鑰到ca機構進行簽名。生成簽名證書。證書裡面包含數字簽名和公鑰。然後客戶端需要將公鑰證書預埋在自己的apk中。在建立ssl連線的流程如下:

1、客戶端傳送clienthello給伺服器開始ssl通訊,報文中包含了客戶端支援的ssl版本、加密元件列表等

2、伺服器可進行ssl通訊時,會以serverhello作為響應。報文包括了ssl版本、選擇的某個加密元件。

3、伺服器傳送certificate報文給客戶端,報文中包含公開秘鑰證書

4、客戶端收到證書後驗證其有效性(驗證簽名機構是否值得信任、伺服器是否可信任),然後取出其公鑰。

5、客戶端用取出的公鑰加密乙個密碼串發給伺服器

6、伺服器拿到加密的密碼串後,使用私鑰進行解密,獲取明文密碼串,之後雙方的資料加密就使用這個密碼串。

在volley裡面可以使用如下**進行實現:

建立sslsockectfactory

然後將這個sslsockectfactory傳給volley即可。

非對稱:在客戶端訪問https伺服器的時候,伺服器會把公鑰證書傳送給客戶端,客戶端會使用自己的證書進行比對,如果確認證書一致,客戶端會生成乙個隨機數,這個隨機數是後序通訊加密的秘鑰,客戶端用證書中的公鑰加密這個隨機數,然後傳送給伺服器,伺服器使用證書的私鑰進行解密,獲取客戶端的隨機數,這個過程就是非對稱加解密。

對稱:在伺服器獲取到客戶端傳送的隨機數後,後續的通訊就使用這個隨機數進行加密解密,由於這個隨機數只有客戶端和伺服器知道,所以這時對稱加密是安全高效的。

簡單封裝volley 實現快速呼叫

首先要依賴volley的庫,網上有很多庫,基本都可以使用,我選擇的是 compile com.dubsmash.volley library 2.0.1 基本思路 將網路請求封裝成乙個工具類,需要使用的時候呼叫,通過介面將返回的資料傳遞出去 首先先寫乙個介面吧 public inte ce inte...

https的實現步驟

https使用的是對稱加密和非對稱加密結合的方式來進行的,步驟如下 1 首先是ssl握手階段,客戶端傳送乙個攜帶ssl版本等資訊的資料到服務端,2 服務端收到改資訊,根據對應的ssl版本,傳送非對稱加密的公鑰給客戶端,自己保留私鑰 3 客戶端拿到公鑰後,首先驗證公鑰的真實性,通過ca證書 4 驗證通...

HTTPS 實現流程

https協議其實就是http over tsl,基礎的http通訊是明文的,有三大風險 資訊被竊聽,資訊被篡改,身份的冒充。tsl協議就是為防範這些風險存在的。tsl使用非對稱加密保護下的對稱加密在保證了通訊效率的同時防止竊聽,使用證書體系防止資訊篡改和身份冒認。注意 tsl協議握手階段的通訊是明...