java6支持了很多的加密算法,各大机构提供了很多的实现。但是大部分收费。
1、这里Bouncy Castle(http://www.bouncycastle.org)提供了一系列的算法实现,可以跻身于JCE的框架下,以提供者的方式纳入java安全实现的开源项目。
2、commons codec这个apache的项目对java6的api做了易用性改进,但是没有对java6提供扩展加密算法。
这里我们可以看到jdkhome下的jre/lib/security/java.security默认的支持的算法
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.mscapi.SunMSCAPI
如果想把Bouncy Castle支持的算法加上去,也可以直接进行配置
security.provider.<n>=<classname>
但是这么做需要将Bouncy Castle的jar包放到jdk下的jre/lib/ext目录,最好jre home下的ext也放一个
写法雷同上边1-9的提供者
不过就算我们不在jdk的环境中配置上边的东东也没问题
我们直接在调用算法的时候显式指明我们用什么类的哪个算法即可