网上关于国密算法的资料较单一,大部分代码都是写的怎么通过java代码生成公私钥串。

实际项目中对方已经给了他们的公钥证书,这里记录如何通过代码解析获得Ecpoint对象并输出

关键代码

String cerPath="E:\\test.cer";

X509Certificate x509Certificate = null;

#国密证书使用了自有的椭圆曲线,无法使用JDK自带的java.security解析证书,需要引入BouncyCastle的BC库支持国密算法

Security.addProvider(new BouncyCastleProvider());

#如果不引入BC库这里会报java.security.NoSuchProviderException: no such provider: BC错误

CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509","BC");

FileInputStream fileInputStream = new FileInputStream(cerPath);

x509Certificate = (X509Certificate) certificateFactory.generateCertificate(fileInputStream);

fileInputStream.close();

System.out.println("证书序列号:"+ x509Certificate.getSerialNumber());

#这里有个坑,bcprov-jdk15on需1.59以上的版本,之前引的是1.54版一直报错

System.out.println("证书公钥:"+ x509Certificate.getPublicKey());

输出

证书序列号:534384516521

证书公钥:EC Public Key [de:38:a5:b6:6f:8b:f7:34:5f:72:1c:af:0c:14:e5:a2:84:fa:e2:c3]

X: 2f05a01e62336c889009b4174d1ec550de327db602ae49a29ebaa4c258633556

Y: cea688f06328d4616685d5cfd575de8e5e8b6de7f5bfc1d273c3562159a5f3f

依赖库

org.bouncycastle

bcprov-jdk15on

1.59

mysql国密算法_【国密SM2算法】通过公钥证书获取JAVA对象相关推荐

  1. SM国密算法(三)-- SM2算法

    目录 一.简介 二.数学公式 获取公私钥: 密钥对的生成: SM签名 SM验签 SM加密 SM解密 加解密中C1,C2,C3 一.简介 SM2非对称加密算法.由国家密码管理局于2010年12月17日发 ...

  2. mysql区间算法_「五大常用算法」一文图解分治算法和思想

    前言 分治算法(divide and conquer)是五大常用算法(分治算法.动态规划算法.贪心算法.回溯法.分治界限法)之一,很多人在平时学习中可能只是知道分治算法,但是可能并没有系统的学习分治算 ...

  3. mysql 编程算法_十大编程算法助程序员走上高手之路

    算法一:快速排序算法 快 速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种 状况并不常见.事实上,快速排 ...

  4. hash算法_数据库中间件分片算法之hash

    前言 夜深人静的时候,打开云音乐,点上一曲攀登,带上真无线蓝牙耳机,瞬间燃到爆,键盘打字如飞倦意全无. 分片规则 这几天有人问我,dble和MyCat到底有什么不同.其实dble作为MyCAT的同门, ...

  5. 人工智能算法_人工智能的灵魂——算法

    人工智能有三驾马车:数据.算法.算力.本文重点介绍算法相关的知识. 本文将介绍算法在人工智能里的概念,算法的4个特征.6个通用方法.以及在选择算法时需要注意的3个点. 什么是算法? 简单的说,算法就是 ...

  6. kmeans算法_实战 | KMeans 聚类算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Ad ...

  7. java 哈希一致算法_一致哈希算法Java实现

    一致哈希算法(Consistent Hashing Algorithms)是一个分布式系统中常用的算法.传统的Hash算法当槽位(Slot)增减时,面临所有数据重新部署的问题,而一致哈希算法确可以保证 ...

  8. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  9. 文本聚类分析算法_常用的聚类分析算法综述

    聚类分析定义 所谓聚类就是按照事物的某些属性,把事物聚集成类,使类间的相似性尽可能小,类内相似性尽可能大.聚类是一个无监督的学习过程,它同分类的根本区别在于分类是需要事先知道所依据的数据特征,而聚类是 ...

最新文章

  1. 德国KubeCon直击:如何轻松且安心地将k8s用于生产?
  2. 字节跳动《算法中文手册》完整版 PDF 开放下载!
  3. python数据模型搭建_python之路(19)django数据库模型(model)
  4. ssh登录远程服务器_设置iTerm2免密登陆ssh远程服务器
  5. boost::unknown_exception用法的测试程序
  6. 泛型中的模糊继承,解析T的意义
  7. CTS(18)---Google GMS
  8. 置换群burnside引理(bzoj 1004: [HNOI2008]Cards)
  9. spring boot示例_Spring Boot REST示例
  10. VassistX番茄助手使用技巧
  11. android studio 打包生成apk文件
  12. 应届毕业生的户口、档案、三方协议、报到证、见习期、工龄计算、转正定级等重要知识普及!
  13. vnc远程控制软件 有哪些vnc远程控制软件推荐
  14. 麻理工MIT的脑计划eyewire (顺便学习一下医学影像知识)
  15. Flash按钮操作(画面暂停与播放)
  16. 如何学好高中数学 提高高中数学成绩秒杀技巧(这几点很重要)
  17. 关于zuul和nginx文件上传大小限制问题
  18. Layaair 不规则碰撞检测 UI
  19. 天兔(Lepus)监控系统快速安装部署
  20. 用8051单片机编程由P1.0和P1.1引脚分别输出周期为1ms和500us的方波

热门文章

  1. matlab 冒泡排序算法,排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现...
  2. 华尔街之所以成为世界金融中心
  3. 安装完PyQt5去哪找Qtdesiner
  4. DRF中ModelSerializer的使用
  5. 南京大学与东南大学计算机学院,南京大学和东南大学合并,能超过浙江大学稳居国内第三高校吗?...
  6. 线上展会之桥批与金融历史文化3D线上展厅
  7. VMware 虚拟机与主机(本机)文件共享方法
  8. java大型多店铺商城源码 java多店铺商城系统b2b2c
  9. [33期] 改变自己-从此时开始
  10. Qt之QTimer(定时器)