java pfx_如何在Java读取PFX格式证书「建议收藏」

java pfx_如何在Java读取PFX格式证书「建议收藏」X509CertificatekeyPairCert=x509Certs[0];intiKeySize=X509CertUtil.getCertificateKeyLength(keyPairCert);System.out.println(“证书密钥算法=”+keyPairCert.getPublicKey().getAlgorithm());System.out.println(“…

大家好,又见面了,我是你们的朋友全栈君。

X509Certificate keyPairCert = x509Certs[0];

int iKeySize = X509CertUtil.getCertificateKeyLength(keyPairCert);

System.out.println(“证书密钥算法=”+keyPairCert.getPublicKey().getAlgorithm());

System.out.println(“证书密钥长度=”+iKeySize);

提取了他所需要的信息。

package org.dev2dev.client.keypair;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.security.KeyStore;

import java.security.KeyStoreException;

import java.security.NoSuchAlgorithmException;

import java.security.NoSuchProviderException;

import java.security.Security;

import java.security.cert.Certificate;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import org.dev2dev.security.keytool.X509CertUtil;

public class LoadKeyFromPKCS12 {

public static void main(String[] args) {

try {

// Open an input stream on the keystore file

String pfxFileName = ” c:\\david.turing.pfx ” ;

String pfxPassword = ” 123456 ” ;

File fPkcs12 = null ;

if (pfxFileName != null ) {

// Open the file

fPkcs12 = new File(pfxFileName);

}

FileInputStream fis = new FileInputStream(fPkcs12);

// Create a keystore object

KeyStore keyStore = null ;

try

{

// Need BC provider for PKCS #12, BKS and UBER

if (Security.getProvider( ” BC ” ) == null )

{

throw new Exception( ” 不能Load入BouncyCastle! ” );

}

keyStore = KeyStore.getInstance( ” PKCS12 ” , ” BC ” );

}

catch (KeyStoreException ex)

{

throw new Exception( ” 不能正确解释pfx文件! ” );

}

catch (NoSuchProviderException ex)

{

throw new Exception( ” Security Provider配置有误! ” );

}

try

{

// Load the file into the keystore

keyStore.load(fis, pfxPassword.toCharArray());

}

catch (CertificateException ex)

{

throw new Exception( ” 证书格式问题! ” );

}

catch (NoSuchAlgorithmException ex)

{

throw new Exception( ” 算法不支持! ” );

}

catch (FileNotFoundException ex)

{

throw new Exception( ” pfx文件没找到 ” );

}

catch (IOException ex)

{

throw new Exception( ” 读取pfx有误! ” );

}

// 获取我的证书链的中keyEntry的别名

Certificate[] certs = keyStore.getCertificateChain( ” david.turing ” );

X509Certificate[] x509Certs = X509CertUtil.convertCertificates(certs);

if (x509Certs == null )

{

return ;

}

x509Certs = X509CertUtil.orderX509CertChain(x509Certs);

X509Certificate keyPairCert = x509Certs[ 0 ];

int iKeySize = X509CertUtil.getCertificateKeyLength(keyPairCert);

System.out.println( ” 证书密钥算法= ” + keyPairCert.getPublicKey().getAlgorithm());

System.out.println( ” 证书密钥长度= ” + iKeySize);

} catch (Exception e) {

e.printStackTrace();

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132761.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月10日 上午11:16
下一篇 2022年6月10日 上午11:36


相关推荐

  • dos下拷贝服务器文件命令行,win7在DOS环境下怎么使用copy命令?使用copy命令复制文件的方法…[通俗易懂]

    dos下拷贝服务器文件命令行,win7在DOS环境下怎么使用copy命令?使用copy命令复制文件的方法…[通俗易懂]win7系统在DOS环境下,如果想复制文件,该怎么操作呢?正常复制粘贴用不了,我们可以使用copy这条命令。copy命令复制文件占用系统资源会更少,复制速度也会略快。那么DOS环境下怎么使用copy命令?我们一起阅读下文教程吧。1、在DOS环境下,如果想复制一个文件副本,并且不对文件名进行更改,则可输入如下命令:copy源文件新文件位置比如说,我想将当前目录下的1.txt文件复制到…

    2022年7月18日
    22
  • Oracle 修改表名、修改列名「建议收藏」

    Oracle 修改表名、修改列名「建议收藏」–重命名表ALTERTABLEtable_nameRENAMETOnew_table_name;–重命名列ALTERTABLEtable_nameRENAMECOLUMNcolumn_nameTOnew_name; 

    2022年5月16日
    41
  • 1 – 项目介绍

    1 – 项目介绍

    2026年3月15日
    2
  • 在springboot项目中接入豆包大模型

    在springboot项目中接入豆包大模型

    2026年3月12日
    1
  • 地理坐标系与投影坐标系的区别和联系_我国常用的地理坐标系和投影坐标系

    地理坐标系与投影坐标系的区别和联系_我国常用的地理坐标系和投影坐标系1.基本概念平时开展GIS开发、研究、应用工作,总会接触到坐标系,也会遇到坐标转换的问题,如地理坐标系、投影坐标系等。地理坐标系是球面坐标,参考平面是椭球面,坐标单位是经纬度;投影坐标系是平面坐标系,参考平面是水平面,坐标单位是米、千米等。地理坐标系转换到投影坐标系的过程理解为投影,即将不规则的地球曲面转换为平面。…

    2025年7月17日
    6
  • CPU流水线技术演进「建议收藏」

    CPU流水线技术演进「建议收藏」一.三级线性流水线每个流水级的结构是:逻辑电路+寄存器我们可以将流水线往下细分,使得各个流水级足够小(CPU执行时间少),就可以通过提高系统时钟频率来提高CPU的处理速度。二.多级线性流水线(这里以5级为例)注意:我们把5级以上的流水线称为超流水线结构。三.muti-多级线性流水线(这里以5级为例)四.多级非线性流水线(乱序执行部件)五.超线程处理器多级非线性流水线(虚拟处理器共用乱序执行部件)拥有超线程的处理器将两个虚拟的处理器暴露给共享的乱..

    2022年8月20日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号