代码:

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证书请求文件相关推荐

  1. java mac pos_pos终端mac国密(sm4)算法(java实现)

    概念理解 mac算法是(Message Authentication Codes 消息认证码算法),是含有密钥散列函数算法.主要通过异或运算,再配合其他加密算法实现mac值的运算,用于校验. 实现过程 ...

  2. 一文告诉你,国密SM2算法有多优秀

    可能很多人都想不到,密码技术是与核技术.航天技术并列的国家三大安全核心技术之一,在保障信息安全,建设行业网络安全环境,增强我国行业信息系统的"安全可控"能力等方面发挥着至为关键的作 ...

  3. 国密SM2算法与RSA算法对比分析

    SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在安全性能.速度性能等方面都优于RSA算法,在我国商用密码体系中被用来替换RSA算法.国家密码管理局于2010年12月17日发 ...

  4. 国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议

    国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算 国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何 国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型 国 ...

  5. 国密SM2算法(JS加密,C#、Java解密)

    常见的渗透测试会将网站登录时密码使用明文传输视为风险.推荐使用国密算法或者RSA算法对密码进行加密传输. RSA加密(JS加密,C#.Java解密)请参考<RSA对称加密(JS加密,C#.Jav ...

  6. 国密SM2算法密钥派生函数KDF的实现

    前段时间需要实现国密算法SM2的签名.验签.加密.解密等功能,加解密过程使用到的密钥派生函数(KDF),从网上搜到的代码不符合<GMT 0003.4-2012 SM2椭圆曲线公钥密码算法 > ...

  7. ec java sm2证书_国密算法SM2证书制作

    前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密 ...

  8. mysql国密算法_【国密SM2算法】通过公钥证书获取JAVA对象

    网上关于国密算法的资料较单一,大部分代码都是写的怎么通过java代码生成公私钥串. 实际项目中对方已经给了他们的公钥证书,这里记录如何通过代码解析获得Ecpoint对象并输出 关键代码 String ...

  9. 国密SM2算法的java和nodejs实现

    转至 http://mp.weixin.qq.com/s/nboZAvg1qYiJIEun6yF2aQ 国密即国家密码局认定的国产密码算法,即商用密码.包括对称加密(SM1) ,非对称加密(SM2) ...

最新文章

  1. 理解Android编译命令(转)
  2. 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)
  3. 【转】HashMap集合中key只能为引用数据类型,不能为基本类型
  4. npm ERR! code EINTEGRITY npm ERR! sha1- 报错解决办法
  5. 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
  6. MoinMoin Wiki 1.7优化与维护经验
  7. Dart基础第7篇:函数的定义 可选参数 默认参数 命名参数
  8. 【学堂在线数据挖掘:理论方法笔记】第七天(4.1)
  9. 搭建Eclipse 2020安卓开发环境
  10. 449.序列化和反序列化二叉搜索树
  11. 力扣——算法入门计划第十四天
  12. 什么是冲激函数、时域卷积、冲激响应以及频响曲线
  13. 从 MVC 到使用 ASP.NET Core 6.0 的最小 API
  14. 软件工程实训有必要吗_软件工程实训总结
  15. web前端工程师基础知识点
  16. 李唐:教你怎么做好网站SEO策略
  17. django框架中嵌入容联云sdk实现短信发送接口
  18. STM32三个ADC同步规则采样
  19. ”高内聚 ,低耦合“到底是什么意思?
  20. 网络渗透作业202105110124郭静

热门文章

  1. 德勤:集团主数据管理方法论(PPT)
  2. 感谢网友教的菠萝凤梨烤肉,太好吃了
  3. [洛谷P3391]文艺平衡树
  4. 历届图灵奖得主(1966-2006)
  5. Java黑皮书课后题第2章:**2.13(金融应用:复利值)假设你每月向银行账户存100美元,年利率为5%,编写程序显示6个月后账户上的钱数
  6. Leecode-SQL 1667. 修复表中的名字
  7. Maya2013安装失败:Installing Microsoft Visual C++ 2005
  8. tar解压命令详细参数
  9. 经典伤感语录-张爱玲十年
  10. html页面制作滚动歌词