java異常 - no such provider:BC


背景

工作中和其他第三方進行通訊的時候,通常需要對通訊中的重要信息進行加密,或者使用證書來保證安全,在使用bcprov-jdk16-146包提供的加解密方法時,報了
Java.security.NoSuchProviderException: no such provider: BC
這個錯誤,從錯誤來看是java security中沒有找到BC的安全模式。

解決方法

有兩種解決方法:
1.直接修改jre環境下的security配置文件
找到JAVA_HOME/jre/lib/security/java.security文件,在里面可以看到有幾行是以“security.provider.”開頭的,在它的最后序號之上加一行,如我的最后的序號是10,加入以下這行:
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
這樣就可以了(前提是工程自己將bcprov-jdk16-146導入了依賴包使用)
2.在代碼中修改
可以在使用BC方法前,在代碼中手動將BC方法添加進環境信息內,例如:

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

直接使用這行代碼可以臨時將BC方法添加進環境信息,使線程接下來的使用不會報錯,比較適用於不傾向改動系統環境的情況。

參考:

https://blog.csdn.net/roy_70/article/details/70842322


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM