使用BC庫解密出現no such provider錯誤
錯誤提示如下:
Exception in thread "main" java.security.NoSuchProviderException: no such provider: BC
at sun.security.jca.GetInstance.getService(GetInstance.java:83)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
at java.security.KeyFactory.getInstance(KeyFactory.java:211)
解決方式
1. edit jre\lib\security\java.security
add security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
2. copy bc*.jar to jre\lib\ext
- 但是上面這種方式並不在某些情況下不適用,又找到了另外一個方式,在代碼里用到的地方前添加如下代碼:
if (Security.getProvider("BC") == null) {
Security.addProvider(new BouncyCastleProvider());
}
or
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());