編程工做中總是能看到RSA、DES等字眼,大概就知道是個加密的算法,可是具體是什麼,正常的使用流程、之間的區別、在客戶端和服務端之間怎麼配合使用、容易出安全的環節在哪裏?這些問題都不知道,下面記錄個人學習過程。算法
加密算法的分類---分類方式一
RSA、DES都屬於加密算法,加密算法又分爲下列幾類:編程
名詞解釋:
不須要祕鑰
指 加密時不須要祕鑰的散列算法,解密只能撞庫了
須要祕鑰
指 加密算法的加密、解密都須要祕鑰
對稱加密
指 加密算法的加密、解密密鑰相同
非對稱加密
指 加密算法的加密密鑰、解密密鑰都不一樣安全
加密算法分類---分類方式二
區別
對稱加密之間的區別
DES學習
3DES大數據
- 祕鑰長度1十二、168位
- 速度慢、消耗資源高
- 安全性中
AES編碼
- 祕鑰長度12八、19二、256位
- 速度快、消耗資源低
- 安全性高
非對稱加密之間的區別
RSA加密
- 安全性取決於密碼長度,越長越安全
- 速度慢,消耗資源高
- 能夠加密數據、數字簽名
DSAcode
- 安全性取決於密碼長度,越長越安全
- 運算快,消耗資源低
- 只能作數字簽名
散列算法之間的區別
SHA-1資源
MD5互聯網
對稱與非對稱的比較
對稱算法
非對稱算法
- 祕鑰管理容易
- 安全性高
- 速度慢,適合少許數據(數據簽名)
RSA
RSA是如今業界使用最流行的加密算法,由於它是最安全的;
做用場景
能同時用於以下兩個場景:
容易出安全問題的環節
- 公鑰給客戶端使用時,客戶端泄露了公鑰;
- 服務端的私鑰被搞到;
DES
DES屬於分組算法,以64位爲分組對數據加密,它的密鑰長度爲56位
使用場景
- 運算速度很快,適合大數據量的加解密處理;
- 由於祕鑰管理比較難,不適合用於互聯網,通常用於內部系統;
容易出安全問題的環節
- 只要掌握了任意一方(發、送方)的密鑰,就能解讀由DES加密算法加密的密文數據;
- 採用窮舉法破譯,破解DES加密算法實際上就是搜索密鑰的編碼。對於56位長度的密鑰來講,若是用窮舉法來進行搜索的話,其運算次數爲2的56次方;