古詩詞大全網 - 藝術簽名 - java代碼如何獲得數字證書?那串20位的指紋?

java代碼如何獲得數字證書?那串20位的指紋?

通過JAVA讀取數字證書獲取20位指紋;

CARead.java文件代碼:

公共類CARead擴展JPanel {

私有字符串CA _ Name

私有字符串CA_ItemData[][] =新字符串[9][2];

Private String[] columnNames = { "證書字段標記","內容" };

公共CARead(字符串證書名稱){

CA _ Name = CertName

/*三個面板用於顯示證書內容*/

JTabbedPane tabbedPane = new JTabbedPane();

JPanel panel normal = new JPanel();

tab bepane . add tab("壹般信息",panel normal);

JPanel panel all = new JPanel();

panel all . set layout(new BorderLayout());

tab bepane . add tab("所有信息",窗格);

JPanel panel base 64 = new JPanel();

panel base 64 . set layout(new BorderLayout());

tab bepane . add tab(" base64編碼形式的信息",panel base64);

/*閱讀證書的壹般信息*/

read _ Normal(panel Normal);

/*讀取證書文件字符串的內容*/

read _ Bin(panel all);

/*讀取Base64編碼格式的證書文件信息*/

read _ Raw(panel base 64);

tabbedepane . setselectedindex(0);

set layout(new GridLayout(1,1));

添加(tabbedepane);

}

private int Read_Normal(JPanel面板){

字符串字段;

嘗試{

認證工廠certificate_factory =認證工廠

。getInstance(" x . 509 ");

file inputstream file _ inputstream = new file inputstream(CA _ Name);

x509 certificate x509 certificate =(x509 certificate)certificate _ factory

。generate certificate(file _ inputstream);

field = x509 certificate . gettype();

CA _ item data[0][0]= " type ";

CA _ item data[0][1]= Field;

field = integer . tostring(x509 certificate . getversion());

CA _ item data[1][0]= " version ";

CA _ item data[1][1]= Field;

field = x509 certificate . getsubjectdn()。getName();

CA _ item data[2][0]= " title ";

CA _ item data[2][1]= Field;

field = x509 certificate . getnotbefore()。toString();//獲取開始生效日期

CA_ItemData[3][0] = "開始生效日期";

CA _ item data[3][1]= Field;

Field =證書。getNotAfter()。toString();//獲取截止日期

CA _ item data[4][0]= " Deadline ";

CA _ item data[4][1]= Field;

field = x509 certificate . get serial number()。toString(16);//獲取序列號

CA_ItemData[5][0] = "序列號";

CA _ item data[5][1]= Field;

field = x509 certificate . getissuerdn()。getName();//獲取發布者名稱

CA_ItemData[6][0] = "發布者名稱";

CA _ item data[6][1]= Field;

field = x509 certificate . getsigalgname();//獲取簽名算法

CA_ItemData[7][0] = "簽名算法";

CA _ item data[7][1]= Field;

field = x509 certificate . get public key()。getAlgorithm();//獲取公鑰算法

CA_ItemData[8][0] = "公鑰算法";

CA _ item data[8][1]= Field;

//關閉輸入流對象

file _ inputstream . close();

final JTable table = new JTable(CA _ item data,column names);

TableColumn tc = null//表格列控件

tc = table.getColumnModel()。getColumn(1);//獲取標題

TC . setpreferedwidth(600);//設置寬度

panel.add(表格);//添加到布局面板

} catch(異常異常){

exception . printstacktrace();//異常捕獲,

return-1;

}

返回0;

}

//讀取二進制指紋文件

private int Read_Bin(JPanel面板){

嘗試{

file inputstream file _ inputstream = new file inputstream(CA _ Name);

data inputstream data _ inputstream = new data inputstream(

file _ inputstream);

認證工廠認證工廠=認證工廠

。getInstance(" x . 509 ");

byte[]bytes = new byte[data _ inputstream . available()];

data_inputstream.readFully(字節);

bytearray inputstream Bais = new bytearray inputstream(字節);

JEditorPane Cert _ EditorPane

cert _ editor pane = new jeditor pane();

X509Certificate cert = null

//遍歷以獲取所有證書屬性。

if(Bais . available()>;0)

{

cert = (X509Certificate)證書工廠。生成證書(Bais);

cert _ editor pane . settext(cert . tostring());

}

cert _ editor pane . disable();

JScrollPane edit _ scroll = new JScrollPane(Cert _ editor pane);

panel . add(edit _ scroll);

file _ inputstream . close();

data _ inputstream . close();

} catch(異常異常){

exception . printstacktrace();

return-1;

}

返回0;

}

private int Read_Raw(JPanel面板){

嘗試{

JEditorPane Cert _ editor pane = new JEditorPane();

string buffer strBuffer = new string buffer();

File inputFile =新文件(CA _ Name);

file reader in = new file reader(input file);

char[]buf = new char[2000];

int len = in.read(buf,0,2000);

for(int I = 1;我& ltleni++) {

strbuffer . append(buf[I]);

}

in . close();

cert _ editor pane . settext(strbuffer . tostring());

cert _ editor pane . disable();

JScrollPane edit _ scroll = new JScrollPane(Cert _ editor pane);

panel . add(edit _ scroll);

} catch(異常異常){

exception . printstacktrace();

return-1;

}

返回0;

}

}