Android SDK 支持的加密算法
一、Android SDK 支持的加密算法
二、加密算法分類
(1)對稱加密
指加密和解密使用相同密鑰的加密算法。
對稱加密算法的安全性取決於加密密鑰的保存情況,但要求企業中每一個持有密鑰的人都保守祕密是不可能的,他們通常會有意無意的把密鑰泄漏出去—— 如果一個用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔,如果整個企業共用一個加密密鑰,那整個企業文檔的保密性便無從談起。
常見的對稱加密算法:DES(Data Encrpytion Standard)、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES(Adavanced Encrpytion Standard)
(2)非對稱加密
指加密和解密使用不同密鑰的加密算法,也稱爲公私鑰加密。
非對稱加密的缺點是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比非對稱加密慢上1000倍。
常見的非對稱加密算法:RSA、ECC(移動設備用(橢圓曲線算法))、Diffie-Hellman、El Gamal、DSA(數字簽名用)
(3)Hash(散列)算法
Hash算法特別的地方在於它是一種單向算法,用戶可以通過Hash算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。
常見的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
三、加密算法的選擇
(2)對稱加密算法不能實現簽名,因此簽名只能非對稱算法。
(3)由於對稱加密算法的密鑰管理是一個複雜的過程,密鑰的管理直接決定着他的安全性,因此當數據量很小時,我們可以考慮採用非對稱加密算法。
(4)在實際的操作過程中,通常採用的方式是:採用非對稱加密算法管理對稱算法的密鑰,然後用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。