JavaBC库基础
BouncyCastle是一个Java的第三方加密库,提供了Java标准库中没有的算法,例如国密。
Maven配置
添加bcprov-ext-jdk18on的依赖
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-ext-jdk18on</artifactId>
<version>1.78.1</version>
</dependency>动态注册
添加进入java.security中
Security.addProvider(new BouncyCastleProvider());环境验证
读取Security的注册商
for (Provider P : Security.getProviders()) {
System.out.println(P);
int count = 1;
for (Map.Entry<Object, Object> entry : P.entrySet()){
System.out.println("\t" + entry.getKey());
count++;
if (count > 3) break;
}
}最后输出,看得到BC的版本号
BC version 1.7801
Alg.Alias.Mac.POLY1305RC6
Signature.SHA3-384WITHRSA
KeyAgreement.ECMQVWITHSHA384CKDF算法信息获取
getAlgorithms获取类所支持所有算法名
getInstance获取实例
Security.addProvider(new BouncyCastleProvider());
Security.getAlgorithms("KeyGenerator").forEach(System.out::println);
KeyGenerator.getInstance("SM4", "BC");
评论