目录:
Base64
消息摘要算法
    MD
    SHA
    MAC
对称加密算法
    DES
    3DES
    AES
    PBE
非对称加密算法
    DH
    RSA
    ElGamal
数字签名算法
    RSA
    DSA
    ECDSA
其它算法
    IDEA
    CRC
Base64
| 
 | 
 | 
消息摘要算法
消息摘要算法 - MD
算法:
MD2  实现方:JDK
MD4  实现方:BouncyCastle 简称BC
MD5  实现方:JDK
| 
 | 
 | 
消息摘要算法 - SHA
安全散列算法
固定长度摘要信息
SHA-1  SHA-2(SHA-224,SHA-256,SHA-384,SHA-512)
算法:
SHA-1    实现方:JDK
SHA-224  实现方:BC
SHA-256  实现方:JDK
SHA-384  实现方:JDK
SHA-512  实现方:JDK
| 
 | 
 | 
消息摘要算法 - MAC
MAC(Message Authentication Code)
HMAC(keyed-Hash Message Authentication Code),含有密钥的散列函数算法
任何MD,SHA
 -MD系列:HmacMD2 , HmacMD4 , HmacMD5
 -SHA系列: HmacSHA1, HmacSHA224,HmacSHA256,HmacSHA384,HmacSHA512
 算法:
 HmacMD2    实现方:BC
 HmacMD4    实现方:BC
 HmacMD5    实现方:JDK
 HamcSHA1   实现方:JKD
 HmacSHA224 实现方:BC
 HmacSHA256 实现方:JKD
 HmacSHA384 实现方:JKD
 HmacSHA512 实现方:JKD
 其它消息摘要算法
 RipeMD
 Tiger
 Whirlpool
 GOST3411
 Bouncy Castle实现
| 
 | 
 | 
对称加密算法
对称加密算法 - DEC - 3DEC
初等
DES
   -3DES
AES
PBE
IDEA
DES(Data Encryptiong Standard) 数据加密标准
对称加密元老.
密钥长度56  默认56  工作模式:ECB,CBC,PCBC,CTR,CTS,CFB,CFB8,到128,OFB,OFB8到128 
实现方:JDK 填充方式:NoPadding,PKCS5Padding,ISO10126Padding, 
实现方:BC 填充方式:PKCS7Padding,ISO10126d2Padding,X932Padding,ISO7816d4Pading,ZeroBytePading
3DES(Triple DES或者DESede)
密钥长度112,168  默认168 
密钥长度128,192  默认168
| 
 | 
 | 
对称加密算法 - AES
DES替代者
密钥长度:128,192,256 默认128 工作模式:ECB,CBC,PCBC,CTR,CTS,CFB,CFB8到128,OFB,OFB8到128 
填充方式:NoPadding,PKCS5Padding,ISO10126Padding 实现方:JDK(256位密钥需要获得无政策限制权限文件)
填充方式:PKCS7Padding,ZeroBytePadding 实现方:BC
无政策限制权限文件是指,因为某些国家的进口管制限制,Java发布的远行环境包中的加解密有一定的限制
| 
 | 
 | 
对称加密算法 - PBE
PBE(Password Based Encryption)基于口令加密
算法                         密钥长度    默认  工作模式       填充方式      实现
PBEWithMD5AndDES                64       64      CBC       PKCS5Padding       BC
PBEWithMd5AndRC2                112      128               PKCS7Padding
PBEWithSHA1AndDES               6        64                ISO10126Padding
PBEWithSHAAndIDEA-CBC           128      128
PBEWithSHAAnd2-KeyTripleDES-CBC 128      128
PBEWithSHAAnd3-KeyTripleDES-CBC 192      192
| 
 | 
 | 
非对称加密算法
非对称加密算法 - DH
高级 
双保险 
公钥,私钥
  DH(Diffie-Hellman)密钥交换算法
  RSA-基于因子分解 ElGamal - 基于离散对数 
  ECC(Elliptical Curve Cryptography) - 椭圆曲线加密
DH 密钥长度: 512~1024(64倍数) 默认1024 实现方:JDK
| 
 | 
 | 
非对称加密算法 - 数字签名算法 - RSA
经典算法 
MD,SHA两类
算法:
MD2withRSA       实现方: JDK
MD5withRSA       实现方: JDK
SHA1withRSA      实现方: JDK
SHA224withRSA    实现方: BC
SHA256withRSA    实现方: BC
SHA384withRSA    实现方: BC
SHA512withRSA    实现方: BC
RIPEMD128withRSA 实现方: BC
RIPEMD160withRSA 实现方: BC
非对称加密算法-RSA
唯一广泛接受并实现
数据加密&数字签名
公钥加密,私钥解密
私钥加密,公钥解密
JDK 密钥长度:512~65536(64整数倍) 工作模式:ECB 默认长度:1024 填充方式: 
NoPadding
PKCS1Padding
OAEPWITHMD5AndMGF1Pading
OAEPWITHSHA1AndMGF1Pading
OAEPWITHSHA256AndMGF1Pading
OAEPWITHSHA384AndMGF1Pading
OAEPWITHSHA512AndMGF1Pading
BC 密钥长度:512~65536(64整数倍) 工作模式:NONE 默认长度:2048 填充方式: 
NoPadding
PKCS1Padding
OAEPWITHMD5AndMGF1Pading
OAEPWITHSHA1AndMGF1Pading
OAEPWITHSHA224AndMGF1Pading
OAEPWITHSHA256AndMGF1Pading
OAEPWITHSHA384AndMGF1Pading
OAEPWITHSHA512AndMGF1Pading
ISO9796-1Padding
| 
 | 
 | 
非对称加密算法 - ElGamal
 公钥加密算法
实现方:BC 密钥长度:160~16384(8的整数倍) , 默认:1024 工作模式:ECB,NONE
填充方式:
NoPadding , PKCS1Padding
OAEPWITHMD5AndMGF1Pading
OAEPWITSHA1AndMGF1Pading
OAEPWITSHA224AndMGF1Pading
OAEPWITSHA256AndMGF1Pading
OAEPWITSHA384AndMGF1Pading
OAEPWITSHA512AndMGF1Pading
ISO9796-1Padding
| 
 | 
 | 
数字签名算法
数字签名算法 - DSA
DSS (Digital Signature Standard)数字签名标准
DSA(Digital Signature Algorithm)数字签名算法
DSA仅包含数字签名
算法:
SHA1withDSA    实现方:JDK
SHA224withDSA  实现方:BC
SHA256withDSA  实现方:BC
SHA384withDSA  实现方:BC
SHA512withDSA  实现方:BC
| 
 | 
 | 
数字签名算法 - ECDSA
 微软
 Elliptic Curve Digital Signature Algorithm , 椭圆曲线数字签名算法
 速度快,强度高,签名短.
 算法:
 NNONEwithECDSA       实现方:JDK/BC  签名长度:128 
 RIPEMD160withECDSA   实现方:BC      签名长度:160
 SHA1withECDSA        实现方:JDK/BC  签名长度:160
 SHA224withECDSA      实现方:BC      签名长度:224
 SHA256withECDSA      实现方:JDK/BC  签名长度:256
 SHA384withECDSA      实现方:JDK/BC  签名长度:384
 SHA512withECDSA      实现方:JDK/BC  签名长度:512
jdk版本1.7以上
| 
 | 
 | 
其它算法
IDEA
这种算法是在DES算法的基础上发展出来的,类似于三重DES。
发展IDEA也是因为感到DES具有密钥太短等缺点。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。
| 
 | 
 | 
CRC
| 
 | 
 | 
运行
| 
 | 
 | 
案例引用如下三个jar包:
bcprov-ext-jdk15on-149.jar
bcprov-jdk15on-149.jar
commons-codec-1.10.jar
代码引用包详情见原代码:
 
        