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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴青县| 敦煌市| 潮州市| 三原县| 宜州市| 库伦旗| 张家川| 公主岭市| 平远县| 墨玉县| 古交市| 榆树市| 新乡县| 宣恩县| 长武县| 四川省| 登封市| 湛江市| 监利县| 吉林省| 淳安县| 土默特左旗| 菏泽市| 灵台县| 韶关市| 黄大仙区| 邢台市| 桂东县| 视频| 金溪县| 桐梓县| 东海县| 红原县| 鹿泉市| 麦盖提县| 东丰县| 舞阳县| 金乡县| 陆丰市| 许昌县| 息烽县|