JAVA加解密2-常見的開源演算法支援以及java預設支援的provider

weixin_34232744發表於2016-04-11

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的環境中配置上邊的東東也沒問題
我們直接在呼叫演算法的時候顯式指明我們用什麼類的哪個演算法即可

相關文章