qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          java數字證書解析

           這兩天公司項目需要用到數字證書,把N年前的代碼找回來貼上

          package com.jinhill.util;

          import java.io.*;
          import java.security.*;
          import java.security.cert.CertificateException;
          import java.security.cert.CertificateFactory;
          import java.security.cert.X509Certificate;
          import java.util.Properties;

          public class Test {

           public static String getSubjectDN(byte[] der) {
            String dn = "";
            try {
             ByteArrayInputStream bIn = new ByteArrayInputStream(der);
             // BouncyCastleProvider provider = new BouncyCastleProvider();
             // CertificateFactory cf = CertificateFactory.getInstance("X509",
             // provider);
             CertificateFactory cf = CertificateFactory.getInstance("X.509",
               "SUN");
             X509Certificate cert = (X509Certificate) cf
               .generateCertificate(bIn);
             dn = cert.getSubjectDN().getName();
             bIn.close();
            } catch (CertificateException e) {
             e.printStackTrace();
            } catch (NoSuchProviderException e) {
             e.printStackTrace();
            } catch (IOException e) {
             e.printStackTrace();
            }
            return dn;
           }
           public static String parseCertDN(String dn, String type){
            type = type + "=";
            String[] split = dn.split(",");
            for (String x : split) {
                if (x.contains(type)) {
                 x = x.trim();
                 return x.substring(type.length());
                }
            }
            return null;
           }
           /**
            * @param args
            */
           public static void main(String[] args) {
            try {
             FileInputStream fis = new FileInputStream(
               "D:/Work/RootCA/newcerts/Reader01.cer");
             int flen = fis.available();
             byte[] buf = new byte[flen];
             fis.read(buf, 0, flen);
             String dn = getSubjectDN(buf);
             String cn = parseCertDN(dn, "CN");
             System.out.println(cn);
            } catch (Exception ex) {
             System.out.println("讀證書文件出錯!");
            }
           }

          }

          posted on 2013-08-20 14:12 順其自然EVO 閱讀(689) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 田林县| 杭州市| 高台县| 中阳县| 二手房| 六安市| 香格里拉县| 西城区| 黑龙江省| 阿合奇县| 调兵山市| 沂源县| 宣武区| 台北市| 武平县| 孙吴县| 阿荣旗| 晋州市| 巴楚县| 佛学| 宜兰市| 西乌| 临桂县| 资溪县| 阳泉市| 黄平县| 上杭县| 邮箱| 东明县| 丰台区| 永新县| 大名县| 洛阳市| 乌鲁木齐市| 家居| 朝阳市| 洛宁县| 泾阳县| 涿州市| 锦州市| 宁化县|