密碼學的加密算法可分為 單向加密算法,對稱加密算法和非對稱加密算法三類。
- 單向加密算法是數據完整性驗證的常用算法,MD5,SHA是單向加密算法的代表;
- 對稱加密算法是數據存儲加密的常用算法,DES,AES是對稱加密算法的代表;
- 非對稱加密算法是數據傳輸加密的常用算法,RSA是非對稱加密算法的代表。對稱加密算法也可以用作數據傳輸加密,但非對稱加密算法在密鑰管理方面更有優勢,在安全級別上更高,只是時間效率上不如對稱加密算法。
JAVA API對密碼學的支持:
- MessageDigest類,可以構建MD5,SHA兩種加密算法;
- Mac類可以構建HMAC加密算法;
- Cipher類可以構建多種加密算法,如DES,AES,RSA,DSA,DH等;
- Signature類可用于數字簽名和簽名驗證;
- Certificate類可用于操作證書。