利用BouncyCastle开源库解析国密SM2证书 Java实现

利用BouncyCastle开源库解析国密SM2证书 Java实现

1.数字证书科普

    数字证书由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行。
    现阶段多为X.509格式证书,X.509是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。之前有X.500。

编码方式有两种:DER编码 PEM编码

  • DER R用于二进制DER编码的证书。
  • PEM PEM用于ASCII(Base64)编码的各种X.509 v3 证书。PEM证书文件开始由一行"----- BEGIN CERTIFICATE -----“开始,由”----- END CERTIFICATE -----"结束。
    注:扩展名不一定为.pem 或.der.。也有.cer .crt

der类型的不用在编码解码,直接就是二进制的数据可以直接使用;
pem类型的数据要根据base64编码解码后,得到的数据需要进行增加或裁剪特殊字符-、\n、\r、begin信息、end信息等。

2.代码用法:

import org.bouncycastle.util.certificate.*;

...
CertInfoTem certInfoTem;//CertInfo对象
CertParser certParser = new PemCertParser();//新建PEM证书转换对象
byte[] pemCertBytes = xxx;//读取PEM证书为byte数组
CertInfoTem certInfoTem = certParser.parseCert(pemCertBytes);//执行转换工作
String sn = certInfoTem.getSerialNumber();//获取序列号等操作
...

资源地址:github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值