靜态配置的方式
靜态配置方式是本地 Java 環境中添加 Bouncy Castle 支援,需要使用到的 jar 包是bcprov-ext-jdk15on-161.jar。
下載下傳位址:http://www.bouncycastle.org/latest_releases.html
找到bcprov-ext-jdk15on-161.jar點選下載下傳即可。
(1)把bcprov-ext-jdk15on-161.jar添加到 java sdk 中。
java sdk 位置→C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext
(2)修改 security 配置檔案 java.security →C:\Program Files\Java\jdk1.8.0_101\jre\lib\security
在 security 檔案中找到以下部分:
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
在後面添加:
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
(注意其中的序号根據自己 security 檔案而定。)
檢測安裝是否成功,可以使用下面的簡單程式進行:
public static void main(String[] args) {
Provider provider = Security.getProvider("BC");
System.out.println(provider);
}
若顯示為 null 表示安裝失敗,若顯示為 BC 表示安裝成功。如下圖:
即安裝成功。
然而在我使用時,卻發現 org.bouncycastle.jce.provider.BouncyCastleProvider和 org.bouncycastle.util.encoders.Hex導不進去
于是我:
打開resource找到META-INF将bcprov-ext-jdk15on-161.jar和bcprov-jdk15on-161.jar粘貼到META-INF裡如下圖:
接着找到Referenced Libraries右鍵, 找到Build Path->configure Build Path... 然後點選configure Build Path...;
找到并點選java Build Path->點選Libraries->點選Add JARs...
找到剛剛導進的bcprov-ext-jdk15on-161.jar和bcprov-jdk15on-161.jar
添加即可完成。如下圖:
結束。