加密算法(DES,AES,RSA,MD5,SHA1,Base64)比較和項目 功能/說明/應用 介紹
資料來源:https://www.cnblogs.com/sochishun/p/7028056.html
對稱性加密算法有:AES、DES、3DES ~ 用途:對稱加密算法用來對敏感數據等信息進行加密
非對稱性算法有:RSA、DSA、ECC ~ RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的。RSA在國外早已進入實用階段,已研制出多種高速的RSA的專用芯片。
散列算法(簽名算法)有:MD5、SHA1、HMAC ~ 用途:主要用於驗證,防止信息被修。具體用途如:文件校驗、數字簽名、鑒權協議
項目應用總結:
1. 加密算法是可逆的,用來對敏感數據進行保護。散列算法(簽名算法、哈希算法)是不可逆的,主要用於身份驗證。
2. 對稱加密算法使用同一個密匙加密和解密,速度快,適合給大量數據加密。對稱加密客戶端和服務端使用同一個密匙,存在被抓包破解的風險。
3. 非對稱加密算法使用公鑰加密,私鑰解密,私鑰簽名,公鑰驗簽。安全性比對稱加密高,但速度較慢。非對稱加密使用兩個密匙,服務端和客戶端密匙不一樣,私鑰放在服務端,黑客一般是拿不到的,安全性高。
4. Base64不是安全領域下的加解密算法,只是一個編碼算法,通常用於把二進制數據編碼為可寫的字符形式的數據,特別適合在http,mime協議下的網絡快速傳輸數據。UTF-8和GBK中文的Base64編碼結果是不同的。釆用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到,但這種方式很初級,很簡單。Base64可以對圖片文件進行編碼傳輸。
5. https協議廣泛用於萬維網上安全敏感的通訊,例如交易支付方面。它的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。
6. 大量數據加密建議釆用對稱加密算法,提高加解密速度;小量的機密數據,可以釆用非對稱加密算法。在實際的操作過程中,我們通常釆用的方式是:釆用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
7. MD5標准密鑰長度128位(128位是指二進制位。二進制太長,所以一般都改寫成16進制,每一位16進制數可以代替4位二進制數,所以128位二進制數寫成16進制就變成了128/4=32位。16位加密就是從32位MD5散列中把中間16位提取出來);sha1標准密鑰長度160位(比MD5摘要長32位),Base64轉換后的字符串理論上將要比原來的長1/3。