什麼是對稱加密、非對稱加密、單向散列、消息認證碼、數字簽名、證書、PKI體系算法
信息安全瀏覽器
實現信息安全的機密性,那麼可使用對稱加密安全
什麼是對稱加密:服務器
實現信息安全的機密性,那麼可使用非對稱加密markdown
什麼是非對稱加密:併發
使用非對稱加密算法能夠直接加密信息。好比小明生成本身的密鑰時,把公鑰對外公開。小紅想向小明傳輸信息可以使用小明的公鑰對消息加密後再發送,而後小明收到後能夠用本身的私鑰來解密。其餘人即時獲得加密後的信息也沒法破解。svn
不過這樣使用開銷很大,通常現實中使用對稱加密來加密原始消息,使用非對稱加密來傳輸用來加密消息的對稱密鑰,(用非對稱加密來加密對稱加密的密鑰。)函數
能夠用單向散列來證實數據的完整性flex
不定長的數經散發處理後會壓縮成固定長度。其特色是相同的輸入必定有相同的輸出,不一樣的輸入幾乎沒有相同的輸出,根據輸出沒法還原輸入。網站
場景舉例:咱們再網站上對外公佈了一個10Gb大小的資源連接和對應的sha256哈希值。用戶從第三方下載到相似資源後能夠作sha256散列運算,若是計算的哈希值和咱們原始資源的哈希值相同,就表示數據是真實完整的
常見的散列算法有:MD5(不安全)、SHA一、SHA256
消息認證碼就是帶密鑰的散列函數
特色:
toekn = header(算法名)+ '.' + payload(有用信息) + '.' + hmac(header + '.' + patload,密鑰)
使用場景:JWT鑑權使用的token就用到了消息認證碼。當服務器把token發送給客戶端,客戶端下次請求時要帶上token,服務器收到token後會截取 header + '.' + payload 作hmac運算,獲得的結果和token的第三部分即hmac作對比。
小明使用私鑰對消息加密即簽名,其餘人使用小明的公鑰若是能解密表示消息必定是小明發的。
簽名能防止抵賴的發生,用來保證信息的不能否認性
一個證書上包含一些公開的明文信息以及證書頒發者對該信息的簽名(私鑰加密)。任何人想驗證證書信息的真僞,只須要用證書頒發者的公鑰對簽名進行解密,再和證書上的明文信息作對比便可。
HTTPS是超文本傳輸安全協議,在HTTP的基礎上經過傳輸加密和身份認證保證了傳輸過程的安全性。
HTTPS = HTTP + SSL
詳細流程:
簡單的來講: