優勢: 算法公開、計算量小、加密速度快、加密效率高缺點:若是有一方丟失密鑰,數據就不安全算法
常見的算法:AES、DES、IDEA、RC四、RC五、RC6安全
公開密鑰與私有密鑰是一對,若是用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;若是用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。由於加密和解密使用的是兩個不一樣的密鑰,因此這種算法叫做非對稱加密算法。性能
優勢: 安全缺點:速度較慢加密
常見的算法:RSA、ECC、DSA、Diffie-Hellman、
El Gamalhash
單向算法,用戶能夠經過hash算法對目標信息生成一段特定長度的惟一hash值,但不能解密,
所以Hash算法經常使用在不可還原的密碼存儲、信息完整性校驗等。效率
常見的摘要算法有: MD二、MD四、MD五、HAVAL、SHA原理
由於每次使用非對稱加密消耗的性能不少,那麼能不能和對稱加密結合起來呢?SSL/TLS就是一種這樣的標準,咱們這裏先舉一個例子:客戶端和服務端通訊密碼
原理:客戶端使用服務端的公鑰來 非對稱加密一條密文,這條密文是 對稱密鑰,服務端經過本身的私鑰解密出來知道是對稱加密的密鑰後,後面通訊就使用 對稱加密,這樣安全和性能就能共存了。
風險:在服務端把公鑰發送給客戶端時,被中間人截獲,中間人返回本身的公鑰,客戶端的對稱密鑰就會被中間人用私鑰解密出來,而後中間人再用服務端的公鑰加密發給服務端,這樣後面的對稱加密數據都會被中間人解密通信
解決辦法:CA(證書認證機構),服務端在CA申請證書,客戶端拿到公鑰後去CA驗證是不是服務端的公鑰數據