密码学的加密算法可分为 单向加密算法,对称加密算法和非对称加密算法三类。
- 单向加密算法是数据完整性验证的常用算法,MD5,SHA是单向加密算法的代表;
- 对称加密算法是数据存储加密的常用算法,DES,AES是对称加密算法的代表;
- 非对称加密算法是数据传输加密的常用算法,RSA是非对称加密算法的代表。对称加密算法也可以用作数据传输加密,但非对称加密算法在密钥管理方面更有优势,在安全级别上更高,只是时间效率上不如对称加密算法。
JAVA API对密码学的支持:
- MessageDigest类,可以构建MD5,SHA两种加密算法;
- Mac类可以构建HMAC加密算法;
- Cipher类可以构建多种加密算法,如DES,AES,RSA,DSA,DH等;
- Signature类可用于数字签名和签名验证;
- Certificate类可用于操作证书。