种类:
- Base64加密;base64加密其实不属于加密的范畴,只是用于转码,比如URL的转码。
- 消息摘要算法;其中包含MD5,SHA,MAC加密,都是不可逆的,但是网上有些说可以解密。
- 对称加密算法;何谓对称加密,就是加密和解密的秘钥是一样的,包含DES,DES3,AES,PBE,其中DES最不经常用,容易被破解;DES3是在DES的基础上的加强版;AES是加解密最快的,并且是被广泛使用的;PBE其实利用盐和秘钥来进行实现的,是对称加密算法中复杂度最高的。
- 不对称加密算法;加密和解密的秘钥是不一样的,公钥和私钥是一对的,通常有两种加密方式,一种是私钥加密,公钥解密,另一种是公钥加密,私钥解密。包含DH,RSA,ELGAMAL,ECC,个人感觉DH的实现方式代码太过复杂,不建议使用,其中RSA的代码实现方式比较简单明了。
- 数字签名;消息摘要算法+不对称加密算法。包含RSA
代码实现主要有三种
- JDK
- Bouncy
- Common
下面的文章将本人自己写的一些例子代码给展示出来。