1. 程式人生 > >JCE cannot authenticate the provider BC

JCE cannot authenticate the provider BC

JCE cannot authenticate the provider BC 這個問題,很多人遇到,如下


本人本著求真溯源的態度,先後通道搜尋國內外資料和官網文件的方式,順道擼了一點JCE。最終得到問題的原因,知道了明確的原因,自然各位道友有無數種方法解決。

    原因:JDK對類似bouncycastle的bcprov-jdk15on-159.jar包是有安全簽名認證的,當我們如果進行生成jar的時候,如果選擇類似eclipse的export runnable jar file 功能,如下紅色勾選的選項,eclipse會解壓縮依賴的包後一起打包成一個jar檔案



以上生成jar的方式,會解壓bcprov-jdk15on-159.jar,這類安全加密演算法類似jar一旦有更改,包括解壓,簽名就會失效,不能通道jdk的驗證,就會出現以上錯誤。

  針對以上的打包方式解決方法很簡單,就是如下紅色勾選的方式,將jar完成的打包進一個檔案中,這樣就沒有問題了


生成的檔案是這樣的:


記得移動jar的時候,把**_lib檔案帶上放在同一個資料夾下面。

網上的兄弟很多各種改jdk安全配置檔案,那樣不好。。。

附送動態加入密碼包見截圖.就不需要新增類似:security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider

如下



1、動態加入

Security.addProvider(org.bouncycastle.jce.provider.BouncyCastleProvider)

2、注意打包方式

3、OK