读书人

Java对证件的操作

发布时间: 2013-10-31 12:03:52 作者: rapoo

Java对证书的操作
1 Java程序从证书文件读取证书

import java.io.*;

import java.security.cert.*;

public class PrintCert{

public static void main(String args[ ]) throws Exception{

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

FileInputStream in=new FileInputStream("my.cer");

Certificate c=cf.generateCertificate(in);

in.close();

String s=c.toString( );

// 显示证书

FileOutputStream fout=new FileOutputStream("tmp.txt");

BufferedWriter out= new BufferedWriter(new OutputStreamWriter(fout));

out.write(s,0,s.length( ));

out.close();

}

}

2 Java程序从密钥库直接读取证书

import java.io.*;

import java.security.*;

import java.security.cert.Certificate;

public class PrintCert2{

public static void main(String args[ ]) throws Exception{

String pass="080302";

String alias="mykey";

String name=".keystore";

FileInputStream in=new FileInputStream(name);

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

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

Certificate c=ks.getCertificate(alias);

in.close();

System.out.println(c.toString( ));

}

}

3 Java程序显示证书指定信息(全名/公钥/签名等)

import java.io.*;

import java.security.*;

import java.security.cert.*;

import java.math.*;

public class ShowCertInfo{

public static void main(String args[ ]) throws Exception{

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

FileInputStream in=new FileInputStream("my.cer");

java.security.cert.Certificate c=cf.generateCertificate(in);

in.close();

X509Certificate t=(X509Certificate) c;

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

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

System.out.println("全名 "+t.getSubjectDN());

System.out.println("签发者全名n"+t.getIssuerDN());

System.out.println("有效期起始日 "+t.getNotBefore());

System.out.println("有效期截至日 "+t.getNotAfter());

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

byte[] sig=t.getSignature();

System.out.println("签名n"+new BigInteger(sig).toString(16));

PublicKey pk=t.getPublicKey();

byte[ ] pkenc=pk.getEncoded();

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

for(int i=0;i< div="">

System.out.print(pkenc[i]+",");

}

}

}

读书人网 >编程

热点推荐