zoukankan      html  css  js  c++  java
  • 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]+",");

            }

    }

    }

  • 相关阅读:
    SQL多表合并查询结果
    无法访问请求的页面,因为该页的数据的相关配置数据无效
    网站运行的时候编译成功但是程序浏览器的页面不会显示怎么回事啊
    EasyUI 在textbox里面输入数据敲回车后查询和普通在textbox输入数据敲回车的区别
    搭建Go开发及调试环境(LiteIDE + GoClipse) -- Windows篇
    Python开发工具安装
    jQuery 插件写法2
    jQuery插件面向对象开发
    Jquery插件学习
    Maven 仓库
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3397983.html
Copyright © 2011-2022 走看看