1、base64
base64是網絡上最常見的用於傳輸8bit字節代碼的編碼方式之一(可以查看RFC2045~RFC2049,上面有MIME的詳細規范)。base64編碼可用於在http環境下傳遞較長的標識信息,例如,在java Persistence系統Hibernate中,就采用了base64來將一個較長的唯一標識符(一般為128bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。在其他應用中的形式。此時,采用base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。
2、MD5(Message-Digest Algorithm 5(信息-摘要算法5))
用於確保信息傳輸完整一致,是計算機廣泛使用的雜湊算法之一(又名為摘要算法、哈希算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算為另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2、MD3、MD4.。廣泛用於加密和解密技術,常用於文件校驗,不管文件多大,經過md5后都能生成唯一的MD5值。好比現在的ISO校驗,都是MD5校驗。使用方法,就是把ISO經過MD5后產生的MD5值,一般下載linux-ISO會看到下載鏈接旁邊放着MD5的串,就是用來驗證文件是否一致。
3、sha
安群哈希算法(Secure Hash Algorithm)主要適用於數字簽名標准里面定義的數字簽名算法。對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉換成一段(通常更小)密文,也可理解為取一串輸入碼,並把他們轉為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。散列函數值可以說是對明文的一種“指紋”或“摘要”所以對散列值的數字簽名就可以視為對此明文的數字簽名
4、HMAC
HMAC(Hash Message Authentication Code),散列消息鑒別碼,基於密鑰的Hash算法的認證協議,它實現的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然后傳出,接收方利用與發送方共享的密鑰進行鑒別認證等。