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