使用BouncyCastle优先使用OpenJDK运行环境,OpenJDK不会对加密库进行签名验证。
Oracle JDK 环境下
- SpringBoot应用使用默认spring-boot-maven-plugin打包
- 普通应用使用maven-jar-plugin打包,依赖包在lib目录下
- 普通应用如果要打成一个jar,需要使用jar in jar解决方案,不能使用解压bc包
部分环境下如Android,需要remove低版本BC:
if(Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
Security.addProvider(new BouncyCastleProvider());
} else {
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
Security.addProvider(new BouncyCastleProvider());
}