关于证书基础以及创建、查看、删除、导入、导出以及其他功能详解请参照:Java使用keytool创建CA证书

Java读取证书有两种方式

1.从文件中读取

public static void main(String[] args) throws CertificateException, IOException, KeyStoreException, NoSuchAlgorithmException {/* 取出证书--从文件中取出 */String certpath = "F:\\keystoretest\\test.cer";CertificateFactory cf = CertificateFactory.getInstance("X.509");FileInputStream in1 = new FileInputStream(certpath);Certificate c = cf.generateCertificate(in1);X509Certificate x509Cert = (X509Certificate) c;// JAVA程序中显示证书指定信息System.out.println("输出证书信息:"+c.toString());System.out.println("版本号:"+x509Cert.getVersion());System.out.println("序列号:"+x509Cert.getSerialNumber().toString(16));System.out.println("主体名:"+x509Cert.getSubjectDN());System.out.println("签发者:"+x509Cert.getIssuerDN());System.out.println("有效期:"+x509Cert.getNotBefore());System.out.println("签名算法:"+x509Cert.getSigAlgName());byte [] sig=x509Cert.getSignature();//签名值System.out.println("签名值:"+ Arrays.toString(sig));PublicKey pk=x509Cert.getPublicKey();byte [] pkenc=pk.getEncoded();System.out.println("公钥");for (byte b : pkenc)System.out.print(b + ",");}

2.从密钥库中读取

public static void main(String[] args) throws CertificateException, IOException, KeyStoreException, NoSuchAlgorithmException {/* 取出证书--从密钥库中取出 */String pass = "123456"; // 密钥库密码String keyStorePath = "F:\\keystoretest\\.keystore";FileInputStream fileInputStream = new FileInputStream(keyStorePath);KeyStore ks = KeyStore.getInstance("JKS");ks.load(fileInputStream, pass.toCharArray());Certificate c = ks.getCertificate("test1"); // test1 为别名X509Certificate x509Cert = (X509Certificate) c;// JAVA程序中显示证书指定信息System.out.println("输出证书信息:"+c.toString());System.out.println("版本号:"+x509Cert.getVersion());System.out.println("序列号:"+x509Cert.getSerialNumber().toString(16));System.out.println("主体名:"+x509Cert.getSubjectDN());System.out.println("签发者:"+x509Cert.getIssuerDN());System.out.println("有效期:"+x509Cert.getNotBefore());System.out.println("签名算法:"+x509Cert.getSigAlgName());byte [] sig=x509Cert.getSignature();//签名值System.out.println("签名值:"+ Arrays.toString(sig));PublicKey pk=x509Cert.getPublicKey();byte [] pkenc=pk.getEncoded();System.out.println("公钥");for (byte b : pkenc)System.out.print(b + ",");}

技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


Java读取证书的两种方式相关推荐

  1. java操作Excel有两种方式 方式1:jxl操作Excel jxl的API

    java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...

  2. 创建和应用Java包文件的两种方式(转)

    创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1  包--package    ... 12.1.1  包命名规 ...

  3. spark消费kafka产生数据堆积怎么处理_SparkStreaming读取Kafka的两种方式

    本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式: 一.SparkStreaming简介 二.Kafka简介 三.Redis简介(可用于保存历史数据或偏移量数据) 四.S ...

  4. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  5. sparkstreaming 读取mysql_SparkStreaming读取Kafka的两种方式

    本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式: 一.SparkStreaming简介 二.Kafka简介 三.Redis简介(可用于保存历史数据或偏移量数据) 四.S ...

  6. Java 实现抽奖的两种方式

    Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...

  7. Java格式化倒计时的两种方式

    Java格式化倒计时的两种方式 第一种方式 /*** 入参是一个每秒减小1的秒数* 返回一个格式化的时间* * 该方法具有局限性,他在时间大于1个小时的时候,会返回错误的时间* 因为该方法调用了Dat ...

  8. nodejs 逐行读取文件的两种方式

    nodejs 逐行读取文件的两种方式 通过readline的方式 const fs = require('fs'); const readline = require('readline');let ...

  9. java 产生随机数的两种方式,Java产生随机数的两种方式

    Java产生随机数的两种方式 Java产生随机数的两种方式 在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.M ...

最新文章

  1. Mysql 解压版 安装时候的注意事项
  2. 【Tools】Ubuntu中vscode安装和使用
  3. 打印出系统所有即未被assign到business transaction和IBASE component的product ID列表
  4. kali linux 开启配置ssh服务
  5. C++类设计的一些心得
  6. uwp之拍照(使用后置摄像头)
  7. 一分钟看懂Docker的网络模式和跨主机通信
  8. LaTeX 2022 安装教程
  9. PowerBuilder从入门到精通(PB12.5)
  10. 2020中国数据智能产业图谱1.0版发布丨数据猿产业全景图
  11. Android 点击按钮,文本文字改变
  12. CCNet: Criss-Cross Attention for Semantic Segmentation论文阅读
  13. 有哪些有关java类最新发表的毕业论文呢?
  14. 你不知道的电脑36个小技巧(纪念2011教师节)
  15. 喜报 |联诚发led球形屏成功入围“深圳企业创新纪录”
  16. octagam® 10%治疗皮肌炎患者的ProDERM研究达到主要终点的阳性结果将在ACR 2020年会上呈报
  17. 关联规则Apriori算法
  18. 本征半导体的导电机制 空穴的概念
  19. adb简介及常用命令
  20. Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测

热门文章

  1. RadeonSoftware.exe CPU占用过高解决方案
  2. 什么是算法?如何学习算法?算法入门的学习路径
  3. mousewheel 取消_jquery mousewheel:检测车轮何时停止?
  4. 当我一个人做游戏时,我在做些什么?专访15岁成名的天才游戏开发者
  5. unity-个人开发技巧
  6. 那些岁月,那些点点星河。
  7. Python实现逻辑回归模型教程
  8. 计算机网络 第五章 应用层
  9. 【手写一个RPC框架】simpleRPC-04
  10. 【JAVA】蛇行矩阵