7.1.2 对称加密算法的家谱

目前已知的可通过Java语言实现的对称加密算法大约有20多种,Java 6仅仅提供了部分算法实现,如DES、DESede、AES、Blowfish,以及RC2和RC4算法等。其他算法(如IDEA算法)需要通过第三方加密软件包Bouncy Castle提供实现。

在对称加密算法中,DES算法最具有代表性,堪称典范;DESede是DES算法的变种;AES算法则作为DES算法的替代者;而IDEA算法作为一种强加密算法,成为电子邮件加密软件PGP(Pretty Good Privacy)的核心算法之一。

在Java实现层面上,DES、DESede、AES和IDEA这4种算法略有不同。

DES和DESede算法在使用密钥材料还原密钥时,建议使用各自相应的密钥材料实现类(DES算法对应DESKeySpec类,DESede算法对应DESedeKeySpec类)完成相应转换操作。

AES算法在使用密钥材料还原密钥时,则需要使用一般密钥材料实现类(SecretKeySpec类)完成相应转换操作。其他对称加密算法可参照该方式实现,如RC2、RC4、Blowfish以及IDEA等算法均可参照AES算法实现方式做相应实现。

IDEA算法实现Java 6未能提供,需要依赖第三方加密组件包Bouncy Castle提供支持,其他由Bouncy Castle提供支持的对称加密算法可参照该算法实现方式做相应实现。