国密SM2算法

这篇博客介绍了如何在Java中使用国密SM2算法生成公私钥对,以及解析国密证书。通过引入BouncyCastle库,详细展示了两种方法,包括证书序列号和公钥的获取,并提到了版本兼容问题和公钥提取的技巧。依赖库为bcprov-jdk15on-1.59.jar。
摘要由CSDN通过智能技术生成

关于国密算法通过java代码生成公私钥串,分享两种方式。

方式一:
关键代码
#国密证书使用了自有的椭圆曲线,无法使用JDK自带的java.security解析证书,需要引入BouncyCastle的BC库支持国密算法
#如果不引入BC库这里会报java.security.NoSuchProviderException: no such provider: BC错误
#这里有个坑,bcprov-jdk15on需1.59以上的版本,之前引的是1.54版一直报错

String cerPath=“C:\测试证书\test.cer”;
Security.addProvider(new BouncyCastleProvider());
CertificateFactory certificateFactory = CertificateFactory.getInstance(“X.509”,“BC”);
FileInputStream fileInputStream = new FileInputStream(cerPath);
X509Certificate x509Certificate = (X509Certificate) certificateFactory.generateCertificate(fileInputStream);
fileInputStream.close();
System.out.println("-----------------公钥--------------------");
System.out.println(“证书序列号:”+ x509Certificate.getSerialNumber());
System.out.println(“证书公钥:”+ x509Certificate.getPublicKey());
System.o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值