加密是用一種特殊的算法改變原有的數據,使未經授權的用戶即使獲得了已經加密的信息,但不知其解密的方法,仍然無法了解信息的內容。
大體上分為單向加密和雙向加密,雙向加密又可分為對稱加密和非對稱加密。
所謂單向加密就是非可逆加密,就是不可解密的加密方法,由於其在加密后會生成唯一的加密串,故而經常用於檢測數據傳輸過程中是否被修改。常見的單向加密有
MD5、SHA、HMAC。我們只是把他們作為加密的基礎,單純的以上三種加密並不可靠。
所謂雙向加密是可逆加密,采用秘鑰進行加密和解密。包含對稱加密和非對稱加密。對稱加密是使用同樣的秘鑰進行加密和解密。非對稱加密一般用兩個秘鑰完成加密解密,這兩個秘鑰是公開秘鑰(公鑰)和私有秘鑰(私鑰),公鑰加密,私鑰解密;私鑰加密,公鑰解密。
BASE64嚴格的說,屬於編碼格式,而非加密算法。BASE64內容傳送編碼被設計用來把任意序列的8個字節描述為一種不易被人直接識別的形式。常用於郵件、http加密。
常見的單向加密:
MD5(message-digest algorithm5)(信息-摘要算法)縮寫,常用於文件校驗,不管文件有多大,都能生成唯一的MD5值。
SHA(Secure Hash Algorithm,安全三列算法),
數字簽名等密碼學應用中的重要工具,
被廣泛用於的電商領域。雖然SHA和MD5都被碰撞法破解了,但SHA教MD5更為安全,是公認的安全算法。
HMAC(HASH MESSAGE AUTHENTICATION CODE,散列消息鑒別碼,基於秘鑰的hash算法驗證協議)。消息鑒別碼實現的原理是:使用公開的函數和秘鑰生成一個固定長度的值作為認證標識,用這個標識鑒別信息的完整性。使用一個秘鑰生成固定大小的數據塊,即MAC,並將其加入到消息中,然后傳輸。接收方與發送方共享秘鑰進行鑒別認證等。
常見的雙向加密:
對稱加密:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES等。
非對稱加密:RSA、DSA