2023年如何在Java处理PFX格式证书.docx

上传人:m**** 文档编号:552950229 上传时间:2023-02-08 格式:DOCX 页数:8 大小:16.66KB
返回 下载 相关 举报
2023年如何在Java处理PFX格式证书.docx_第1页
第1页 / 共8页
2023年如何在Java处理PFX格式证书.docx_第2页
第2页 / 共8页
2023年如何在Java处理PFX格式证书.docx_第3页
第3页 / 共8页
2023年如何在Java处理PFX格式证书.docx_第4页
第4页 / 共8页
2023年如何在Java处理PFX格式证书.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《2023年如何在Java处理PFX格式证书.docx》由会员分享,可在线阅读,更多相关《2023年如何在Java处理PFX格式证书.docx(8页珍藏版)》请在金锄头文库上搜索。

1、2023如何在Java处理PFX格式证书如何在Java处理PFX格式证书公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或效劳器私钥、公钥和证书指定了一个可移植的格式。它是一种二进制格式,这些文件也称为PFX文件。开发人员通常须要将PFX文件转换为某些不同的格式,如PEM或JKS,以便可以为运用SSL通信的独立Java客户端或WebLogic Server运用在Security编程中,有几种典型的密码交换信息文件格式:DER-encoded certificate: .cer, .crtPEM-encoded

2、message: .pemPKCS#12 Personal Information Exchange: .pfx, .p12PKCS#10 Certification Request: .p10PKCS#7 cert request response: .p7rPKCS#7 binary message: .p7b.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。.pem跟crt/cer的区分是它以Ascii来表示。pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式p10是证书恳求p7r是CA对证书恳求的.回复,只用于导入p7b以树状展示证书链(certifi

3、cate chain),同时也支持单个证书,不含私钥。其中,我介绍如何从p12/pfx文件中提取密钥对及其长度:1,首先,读取pfx/p12文件(须要供给保护密码)2,通过别名(Alias,留意,全部证书中的信息项都是通过Alias来提取的)提取你想要分析的证书链3,再将其转换为一个以X509证书结构体4,提取里面的项,假设那你的证书项放在第一位(单一证书),干脆读取 x509Certs0(见下面的代码)这个X509Certificate对象5,X509Certificate对象有许多方法,tain198127网友希望读取RSA密钥(公私钥)及其长度(见 :/ matrix.org /thre

4、ad.shtmltopicId=43786&forumId=55&#reply),那真是太Easy了,X509Certificate keyPairCert = x509Certs0;int iKeySize = X509CertUtil.getCertificateKeyLength(keyPairCert);System.out.println(&证书密钥算法=&+keyPairCert.getPublicKey().getAlgorithm();System.out.println(&证书密钥长度=&+iKeySize);提取了他所须要的信息。package org.de

5、v2dev.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;impo

6、rt 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

7、the keystore fileString pfxFileName = & c:david.turing.pfx & ;String pfxPassword = & 123456 & ;File fPkcs12 = null ;if (pfxFileName != null ) / Open the filefPkcs12 = new File(pfxFileName);FileInputStream fis = new FileInputStream(fPkcs12);/ Create a keystore objectKeyStore keyStore = null ;try/ Nee

8、d BC provider for PKCS #12, BKS and UBERif (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 Ex

9、ception( & Security Provider配置有误! & );try/ Load the file into the keystorekeyStore.load(fis, pfxPassword.toCharArray();catch (CertificateException ex)throw new Exception( & 证书格式问题! & );catch (NoSuchAlgorithmException ex)throw new Exception( & 算法不支持! & );catch (FileNotFoundException ex)throw new Exce

10、ption( & 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.orderX

11、509CertChain(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();本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第1页 共1页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页第 1 页 共 1 页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 人事档案/员工关系

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号