java文件读取数字证书,[装载]Java数字证书的一些应用实例

这篇博客介绍了如何在Java程序中操作证书和密钥库。内容包括从文件读取X.509证书,从密钥库加载证书,显示证书详细信息,列出密钥库所有条目以及修改密钥库口令的步骤。涉及到的关键技术有KeyStore、CertificateFactory和密钥管理。
摘要由CSDN通过智能技术生成

一:需要包含的包

import java.security.*;

import java.io.*;

import

java.util.*;

import java.security.*;

import java.security.cert.*;

import sun.security.x509.*

import java.security.cert.Certificate;

import java.security.cert.CertificateFactory;

二:从文件中读取证书

用keytool将.keystore中的证书写入文件中,然后从该文件中读取证书信息

CertificateFactory

cf=CertificateFactory.getInstance("X.509");

FileInputStream in=new

FileInputStream("out.csr");

Certificate c=cf.generateCertificate(in);

String s=c.toString();

三:从密钥库中直接读取证书

String pass="123456";

FileInputStream in=new FileInputStream(".keystore");

KeyStore

ks=KeyStore.getInstance("JKS");

ks.load(in,pass.toCharArray());

java.security.cert.Certificate

c=ks.getCertificate(alias);//alias为条目的别名

四:JAVA程序中显示证书指定信息

System.out.println("输出证书信息:\n"+c.toString());

System.out.println("版本号:"+t.getVersion());

System.out.println("序列号:"+t.getSerialNumber().toString(16));

System.out.println("主体名:"+t.getSubjectDN());

System.out.println("签发者:"+t.getIssuerDN());

System.out.println("有效期:"+t.getNotBefore());

System.out.println("签名算法:"+t.getSigAlgName());

byte []

sig=t.getSignature();//签名值

PublicKey pk=t.getPublicKey();

byte []

pkenc=pk.getEncoded();

System.out.println("公钥");

for(int

i=0;i

五:JAVA程序列出密钥库所有条目

String pass="123456";

FileInputStream in=new

FileInputStream(".keystore");

KeyStore ks=KeyStore.getInstance("JKS");

ks.load(in,pass.toCharArray());

Enumeration e=ks.aliases();

while(e.hasMoreElements())

java.security.cert.Certificate

c=ks.getCertificate((String)e.nextElement());

六:JAVA程序修改密钥库口令

String

oldpass="123456";

String newpass="654321";

FileInputStream in=new

FileInputStream(".keystore");

KeyStore ks=KeyStore.getInstance("JKS");

ks.load(in,oldpass.toCharArray());

in.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值