java6支持了很多的加密算法,各大機(jī)構(gòu)提供了很多的實(shí)現(xiàn)依沮。但是大部分收費(fèi)寿冕。
1均践、這里Bouncy Castle(http://www.bouncycastle.org)提供了一系列的算法實(shí)現(xiàn),可以躋身于JCE的框架下坛吁,以提供者的方式納入java安全實(shí)現(xiàn)的開源項(xiàng)目劳殖。
2铐尚、commons codec這個apache的項(xiàng)目對java6的api做了易用性改進(jìn),但是沒有對java6提供擴(kuò)展加密算法哆姻。
這里我們可以看到j(luò)dkhome下的jre/lib/security/java.security默認(rèn)的支持的算法
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支持的算法加上去宣增,也可以直接進(jìn)行配置
security.provider.<n>=<classname>
但是這么做需要將Bouncy Castle的jar包放到j(luò)dk下的jre/lib/ext目錄,最好jre home下的ext也放一個
寫法雷同上邊1-9的提供者
不過就算我們不在jdk的環(huán)境中配置上邊的東東也沒問題
我們直接在調(diào)用算法的時候顯式指明我們用什么類的哪個算法即可