摘要算法
是一個唯一對應一個消息或文本的固定長度的值,
由一個單向hash函數對消息進行計算而產生,
將需要計算內容“摘要成固定長度的串,這個串也稱爲數字指紋
同樣的明文其摘要必定一致
-
MD5 Message Digest Algorithm 5 ,是數字摘要算法的一種實現
長度爲128位 -
SHA Secure Hash Algorithm 安全散列算法
長度爲160位 -
十六進制編碼
-
Base64 編碼 ,64個可打印字符來表示二進制數據的方法
可以通過逆向得出編碼之前的信息
只是一種編碼算法,將一組二進制信息編碼成可打印的字符
在網絡上傳輸與展現
對稱加密
加密和解密都依賴同一個密鑰
-
DES Data Encryptin Standard
獲取密鑰生成器
這是密鑰位數,就可以生成des算法的密鑰,每次生成的都不相同 -
AES Advance Encyption Standard 高級加密標準
非對稱加密
需要兩個密鑰
一個稱爲公開密鑰
另一個稱爲私有密鑰
公私鑰需要配對使用
- RSA 算法
數字簽名
簽名認證是對非對稱加密技術與數字摘要技術的綜合運用
將通信內容的摘要信息使用發送者的私鑰進行加密,
然後將密文與原文一起傳輸給信息的接收者,
-
MD5withRSA
使用md5算法生成需要發送徵文的數字摘要,
使用RSA算法來對正文進行加密和解密 -
SHA1withRSA
使用SHA-1算法生成正文的數字摘要,
使用RSA算法對摘要進行加密和解密 -
數字證書
身份證、駕駛證等
通過和證書機構進行校驗後,確定數字證書的真假-
X.509
將證書信息規範地存儲到一系列可解析的字段中 -
證書籤發
需要數字證書認證機構Certificate Authority來進行頒發,
只有經過CA頒發的數字證書在網絡中才具備認證性
-
-
證書校驗
-
OpenSSl
包含一個開源的SSL協議的實現
包括SSL協議庫、密碼算法庫,以及各種與之相關的應用程序
摘要認證
針對每次請求和響應,
按照一定的規則生成數字摘要,
防止請求信息被篡改
摘要認證的實現
- 客戶端參數摘要生成
- 參數排序
- 參數拼接,加上secrte
- 使用md5等摘要算法生成摘要
- 服務端參數摘要檢驗
- 參數排序
- 參數拼接,加上secret
- 生成摘要
- 對比摘要串是否篡改
- 服務端響應摘要生成和客戶端響應摘要校驗
簽名認證
與摘要方式類似,
不過加密的方式使用的是私鑰,
解密時使用的是公開的私鑰
https 協議
就是基於ssl的http協議
https協議能夠確保整個通信過程都是經過加密的
密鑰隨機產生
能夠通過數字證書驗證通信雙方的身份,確保信息安全,
證書中包含了一些基本信息,簽名信息等,
通信的內容使用對稱加密方式進行加密,
通信的兩端約定好通信密碼後,
公鑰加密,私鑰解密。
私鑰數字簽名,公鑰驗證。
-
SSL 安全套接層,是一種網絡安全協議
在傳輸層與應用層之間進行數據通信的加密 -
TLS Transport Layer Security 傳輸層安全協議
-
都可以分爲兩層
- Record Protocol 記錄協議
- Handshake Protocol 握手協議
記錄協議:建立在可靠的傳輸協議上TCP,對數據封裝、加解密等
握手協議建立在記錄協議上,
在實際數據傳輸開始,進行加密算法的協商,通信密鑰的交換等
真正的數據交換階段,實際上數據是通過對稱加密算法來實現加密的
OAuth授權過程
ISV第三方
consumer 用戶
platform 平臺商