• 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]+",");

            }

    }

    }

  • 相关阅读:
    【PS技巧】常用概念和功能操作
    【存储】RAID磁盘阵列选择
    【Python 01】Python一种面向对象、解释型计算机程序设计语言
    【PS技巧】如何校正倾斜的图片
    【阿里巴巴大数据实践笔记】第14章:存储和成本管理
    【阿里巴巴大数据实践笔记】第13章:计算管理
    【阿里巴巴大数据实践笔记】第9章:阿里巴巴数据整合及管理体系
    今晚直播丨抢鲜体验-openGauss入门
    详述一则数据库死锁故障的分析过程
    前端学习笔记(一)HTML入门
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3397983.html
Copyright © 2020-2023  润新知