java 产生p10证书_【国密SM2算法】JAVA创建pkcs10格式的csr证书请求文件
代码:
public static void main(String[] args) throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyPairGenerator localKeyPairGenerator = KeyPairGenerator.getInstance("EC", new BouncyCastleProvider());
localKeyPairGenerator.initialize(256);
KeyPair localKeyPair = localKeyPairGenerator.genKeyPair();
X500NameBuilder localX500NameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
localX500NameBuilder.addRDN(BCStyle.CN, "39dian test");
localX500NameBuilder.addRDN(BCStyle.C, "CN");
localX500NameBuilder.addRDN(BCStyle.O, "39dian blog");
localX500NameBuilder.addRDN(BCStyle.L, "shanghai");
localX500NameBuilder.addRDN(BCStyle.ST, "shanghai");
localX500NameBuilder.addRDN(BCStyle.EmailAddress, "admin@39dian.com");
X500Name localX500Name = localX500NameBuilder.build();
JcaPKCS10CertificationRequestBuilder p10Builder = new JcaPKCS10CertificationRequestBuilder(localX500Name, localKeyPair.getPublic());
JcaContentSignerBuilder csBuilder = new JcaContentSignerBuilder("SM3WITHSM2");// 签名算法
ContentSigner signer = csBuilder.build(localKeyPair.getPrivate());
PKCS10CertificationRequest csr = p10Builder.build(signer);// PKCS10的请求
System.out.println(Base64.encodeBase64String(csr.getEncoded()));
}
输出:
MIIBPDCB4wIBADCBgDEUMBIGA1UEAwwLMzlkaWFuIHRlc3QxCzAJBgNVBAYTAkNOMRQwEgYDVQQKDAszOWRpYW4gYmxvZzERMA8GA1UEBwwIc2hhbmdoYWkxETAPBgNVBAgMCHNoYW5naGFpMR8wHQYJKoZIhvcNAQkBFhBhZG1pbkAzOWRpYW4uY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAET+QCG5/fwkC9ZyhaMu7Orrp8UKBkTvjFac3hwQ3q/AWh3NrvVKmRi667e6A8vss5dn41+iccdrgD8X+b9F3rP6AAMAoGCCqBHM9VAYN1A0gAMEUCIAryXsg0WngILGG0czwM9kb0al865O2qiVvAmYoRplHrAiEA29guaAuvcOq+XM/4bXHHqVV3nQyc1oK3/phW6EBav1E=
上面输出的是原始串,完整的csr需要加上begin和end certificate request
-----BEGIN CERTIFICATE REQUEST-----
MIIBPDCB4wIBADCBgDEUMBIGA1UEAwwLMzlkaWFuIHRlc3QxCzAJBgNVBAYTAkNOMRQwEgYDVQQKDAszOWRpYW4gYmxvZzERMA8GA1UEBwwIc2hhbmdoYWkxETAPBgNVBAgMCHNoYW5naGFpMR8wHQYJKoZIhvcNAQkBFhBhZG1pbkAzOWRpYW4uY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAET+QCG5/fwkC9ZyhaMu7Orrp8UKBkTvjFac3hwQ3q/AWh3NrvVKmRi667e6A8vss5dn41+iccdrgD8X+b9F3rP6AAMAoGCCqBHM9VAYN1A0gAMEUCIAryXsg0WngILGG0czwM9kb0al865O2qiVvAmYoRplHrAiEA29guaAuvcOq+XM/4bXHHqVV3nQyc1oK3/phW6EBav1E=
-----END CERTIFICATE REQUEST-----
网上找个第三方网址测试下,可以解析出来
java 产生p10证书_【国密SM2算法】JAVA创建pkcs10格式的csr证书请求文件相关推荐
- java mac pos_pos终端mac国密(sm4)算法(java实现)
概念理解 mac算法是(Message Authentication Codes 消息认证码算法),是含有密钥散列函数算法.主要通过异或运算,再配合其他加密算法实现mac值的运算,用于校验. 实现过程 ...
- 一文告诉你,国密SM2算法有多优秀
可能很多人都想不到,密码技术是与核技术.航天技术并列的国家三大安全核心技术之一,在保障信息安全,建设行业网络安全环境,增强我国行业信息系统的"安全可控"能力等方面发挥着至为关键的作 ...
- 国密SM2算法与RSA算法对比分析
SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在安全性能.速度性能等方面都优于RSA算法,在我国商用密码体系中被用来替换RSA算法.国家密码管理局于2010年12月17日发 ...
- 国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算 国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何 国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型 国 ...
- 国密SM2算法(JS加密,C#、Java解密)
常见的渗透测试会将网站登录时密码使用明文传输视为风险.推荐使用国密算法或者RSA算法对密码进行加密传输. RSA加密(JS加密,C#.Java解密)请参考<RSA对称加密(JS加密,C#.Jav ...
- 国密SM2算法密钥派生函数KDF的实现
前段时间需要实现国密算法SM2的签名.验签.加密.解密等功能,加解密过程使用到的密钥派生函数(KDF),从网上搜到的代码不符合<GMT 0003.4-2012 SM2椭圆曲线公钥密码算法 > ...
- ec java sm2证书_国密算法SM2证书制作
前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密 ...
- mysql国密算法_【国密SM2算法】通过公钥证书获取JAVA对象
网上关于国密算法的资料较单一,大部分代码都是写的怎么通过java代码生成公私钥串. 实际项目中对方已经给了他们的公钥证书,这里记录如何通过代码解析获得Ecpoint对象并输出 关键代码 String ...
- 国密SM2算法的java和nodejs实现
转至 http://mp.weixin.qq.com/s/nboZAvg1qYiJIEun6yF2aQ 国密即国家密码局认定的国产密码算法,即商用密码.包括对称加密(SM1) ,非对称加密(SM2) ...
最新文章
- 理解Android编译命令(转)
- 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)
- 【转】HashMap集合中key只能为引用数据类型,不能为基本类型
- npm ERR! code EINTEGRITY npm ERR! sha1- 报错解决办法
- 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- MoinMoin Wiki 1.7优化与维护经验
- Dart基础第7篇:函数的定义 可选参数 默认参数 命名参数
- 【学堂在线数据挖掘:理论方法笔记】第七天(4.1)
- 搭建Eclipse 2020安卓开发环境
- 449.序列化和反序列化二叉搜索树
- 力扣——算法入门计划第十四天
- 什么是冲激函数、时域卷积、冲激响应以及频响曲线
- 从 MVC 到使用 ASP.NET Core 6.0 的最小 API
- 软件工程实训有必要吗_软件工程实训总结
- web前端工程师基础知识点
- 李唐:教你怎么做好网站SEO策略
- django框架中嵌入容联云sdk实现短信发送接口
- STM32三个ADC同步规则采样
- ”高内聚 ,低耦合“到底是什么意思?
- 网络渗透作业202105110124郭静
热门文章
- 德勤:集团主数据管理方法论(PPT)
- 感谢网友教的菠萝凤梨烤肉,太好吃了
- [洛谷P3391]文艺平衡树
- 历届图灵奖得主(1966-2006)
- Java黑皮书课后题第2章:**2.13(金融应用:复利值)假设你每月向银行账户存100美元,年利率为5%,编写程序显示6个月后账户上的钱数
- Leecode-SQL 1667. 修复表中的名字
- Maya2013安装失败:Installing Microsoft Visual C++ 2005
- tar解压命令详细参数
- 经典伤感语录-张爱玲十年
- html页面制作滚动歌词