qileilove

          blog已經(jīng)轉移至github,大家請訪問 http://qaseven.github.io/

          java數(shù)字證書解析

           這兩天公司項目需要用到數(shù)字證書,把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)  編輯  收藏


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


          網(wǎng)站導航:
           
          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 黄骅市| 梓潼县| 云霄县| 怀集县| 阳谷县| 建德市| 靖边县| 明光市| 崇仁县| 油尖旺区| 宜川县| 汤原县| 阳信县| 德兴市| 镇江市| 孟州市| 建始县| 宕昌县| 涞源县| 泰顺县| 石首市| 肥城市| 哈尔滨市| 延庆县| 琼中| 精河县| 防城港市| 将乐县| 西丰县| 剑河县| 岳西县| 洛扎县| 兴隆县| 东阳市| 大足县| 融水| 嘉荫县| 南部县| 若尔盖县| 板桥市| 嘉义市|