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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DLL注入

    DLL注入DLL注入DLL注入原理dll注入实现过程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入DLL注入原理在Windows操作系统中,运行的每一个进程都生活在自己的程序空间中(保护模式),每一个进程都认为自己拥有整个机器的控制权,

    2022年5月17日
    62
  • Idea激活码教程,永久有效激活码2024.3.5绝对有效2024.3.5

    Idea激活码教程,永久有效激活码2024.3.5绝对有效2024.3.5Idea 激活码教程永久有效 2024 3 5 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 3 5 成功激活

    2025年5月21日
    7
  • 数据库模型设计,第一范式、第二范式、第三范式简单例子理解

    数据库模型设计,第一范式、第二范式、第三范式简单例子理解有几年经验了,也经历了不少项目,接触了各种数据模型,可是数据库模型设计范式只是知道有这个东西,具体范式的要求是什么呢?你是不是还很模糊?赶紧来普及下吧,第一范式、第二范式、第三范式简单例子理解。

    2022年5月23日
    52
  • SQL岗位30个面试题,SQL面试问题及答案「建议收藏」

    SQL岗位30个面试题,SQL面试问题及答案「建议收藏」SQL岗位30个面试题,SQL面试问题及答案:什么是SQL?SQL(结构化查询语言)是一种设计用于检索和操作数据的数据库。它属于美国国家标准协会(ANSI)的一种标准,可用于执行Select(选择)、Update(更新)、Delete(删除)和Insert(插入)等数据任务。数据库中的表和字段是什么?表是在具有列和行的模型中设计的数据集合。在表中,指定了列数称为字段,但未定义行数称…

    2022年8月27日
    5
  • java web文件上传——FileUpload

    java web文件上传——FileUpload文件上传分析1.普通表单提交默认enctype="application/x-www-form-urlencoded";但是当表单中存在文件类型时,需要设置enctype="multipart/form-data",它不对字符进行编码,用于发送二进制的文件(即所有文件类型,如视频、图片、音乐、文档都可以用此类型entype);还有一种enctype="text/plain"用于发送纯文本内容。…

    2022年5月14日
    84
  • MS17010原生打法

    MS17010原生打法1、针对入口跳板机已经CS上线但是因为目标所在区域代理出来的流量卡慢、扫描会导致代理隧道崩溃、MSF的17010不成功但是原生利用工具成功的场景。此工具是由最原版调用fb.py那版提取出来的(原生版是最为稳定,并且能利用的版本)。项目地址:https://github.com/TolgaSEZER/EternalPulsemsfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=192.168.3.128LPORT=4443-fdll>x

    2022年6月14日
    63

发表回复

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

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