亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sslsignature_record.java

?? 身份認證和數字簽名在實際應用中是通過以數字證書為核心的公開密鑰基礎結構(PKI)來實現的
?? JAVA
字號:
/****************************************************************
* 軟件:Java簽名協議擴展 (Java Signature Protocol Extension, JSPE)
* 版本:V1.0
* 軟件功能:實現SSL簽名協議
* 模塊:公共類SSLsignature_record
*-----------------------------------------------------------------
*                                 版權所有:中山大學軟件研究所 2002
*                          Programmed by 佛山張峰嶺 fszfl@21cn.com
*                                              2002.4 - 2002.5
*****************************************************************/
package com.zsusoft.zfl;
import java.io.*;
import java.util.*;
/********************************************
*  類SSLsignature_record的對象實例保存一次完整SSL簽名過程的所有記錄信息
* 包括簽名請求消息,簽名響應消息,簽名請求者的證書,簽名響應者的證書。
* 類中有把自身對象保存到文件和從文件中恢復的方法;把成員內容輸出成可視字符串的方法。
* 這個類的對象產生的文件可以作為支持不可否認性的證據,
* 類中的main方法就支持在命令行解釋SSLsignature_record對象格式的文件。.
********************************************/
public class SSLsignature_record implements Serializable
{
	private boolean IamRequester;
	/**
	* 隨機數,可以用于索引
	**/
	public SSLRandom random;
	/**
	* 簽名請求信息
	**/    
	public Signature_request signature_request;
	/**
	* 簽名回應
	**/   
	public Signature_reply signature_reply;
	/**
	* 本方的X509證書
	**/       
	public java.security.cert.Certificate my_certificate;
	/**
	* 對方的X509證書
	**/  
	public javax.security.cert.Certificate partner_certificate;  
   /**
   *  本構造函數為請求者調用
   *  (注:做成兩個生成函數因為partner的證書從SSL Session(會話)中取得
   *  從SSL session中取得的證書類型與從Java Key Store加載的不兼容,這個問題等候Sun解決)
   *  理論上簽名涉及的雙方都要保存簽名記錄作為不可否認的證據
   **/
    public SSLsignature_record(Signature_request S_request,Signature_reply S_reply,java.security.cert.Certificate requester,
           javax.security.cert.Certificate replier){
           random=S_request.random;
           signature_request = S_request;
           signature_reply = S_reply;
           my_certificate = requester;
           partner_certificate = replier;
           IamRequester = true;
    }
   /**
   *  本構造函數為響應者調用
   **/
    public SSLsignature_record(Signature_request S_request,Signature_reply S_reply,javax.security.cert.Certificate requester,
           java.security.cert.Certificate replier){
           random=S_request.random;
           signature_request = S_request;
           signature_reply = S_reply;
           partner_certificate = requester;
           my_certificate = replier;
           IamRequester = false;  //我是響應者
    }
   /**
   *  從文件中恢復SSLsignature_record對象實例
   *  filename是保存SSLsignature_record對象的文件名
   *  
   **/ 
    public static SSLsignature_record restore_from_file(String filename)
    {
    	SSLsignature_record S_record = null;
    	try {
    		ObjectInputStream Objectfile = new ObjectInputStream(
    		   new FileInputStream(filename));
    		S_record = (SSLsignature_record) Objectfile.readObject();
    		Objectfile.close();
    	} catch(Exception e){
    		System.err.println("無法從文件"+filename+"中恢復SSLsignature_record對象。原因:"+ e.getMessage());
    		e.printStackTrace();
        }
          return S_record;
    }
   /**
   *  把本SSLsignature_record對象保存到文件中
   *  filename是文件名
   *  成功返回true
   **/
     public boolean save_to_file(String filename)
     {
     	try {
     		ObjectOutputStream Objectfile = new ObjectOutputStream(
     		   new FileOutputStream(filename));
     		Objectfile.writeObject(this);
     		Objectfile.close();
     		return true;
     	} catch(Exception e){
    		System.err.println("保存SSLsignature_record對象到文件"+filename+"出錯。原因:"+ e.getMessage());
    		e.printStackTrace();
    		return false;
        }
     }
   /**
   *  保存到缺省文件中
   *  缺省文件取名方式  日期_時間.請求者Subject Distinguished Name中的CN_響應者Subject Distinguished Name中的CN
   *    文件名格式:YYYY_MM_DD_HH_MM_SS.AAABBB_CCCDDD  
   *         AAABBB表示請求者Subject Distinguished Name中的CN
   *         CCCDDD表示響應者Subject Distinguished Name中的CN
   **/
     public boolean save_to_file()
     {
     	String my_SubjectDN = null;
     	String partner_SubjectDN = null;
     	String my_SubjectDN_CN = null;
     	String partner_SubjectDN_CN = null;
     	my_SubjectDN = ((java.security.cert.X509Certificate)my_certificate).
     			   getSubjectDN().getName();
     		       {
     			int begin=my_SubjectDN.indexOf("CN=");    //定位CN域頭
                 	int end=my_SubjectDN.indexOf(",",begin);  //定位CN域尾
                 	if(end<0){
                   		my_SubjectDN_CN=my_SubjectDN.substring(begin+3);
                 	}
                 	else{
                   		my_SubjectDN_CN=my_SubjectDN.substring(begin+3,end);
                 	}
                       }
        partner_SubjectDN = ((javax.security.cert.X509Certificate)partner_certificate).
     			   getSubjectDN().getName();
     		      {
     			int begin=partner_SubjectDN.indexOf("CN=");    //定位CN域頭
                 	int end=partner_SubjectDN.indexOf(",",begin);  //定位CN域尾
                 	if(end<0){
                   		partner_SubjectDN_CN=partner_SubjectDN.substring(begin+3);
                 	}
                 	else{
                   		partner_SubjectDN_CN=partner_SubjectDN.substring(begin+3,end);
                 	}
                      }
        Date date = new Date(random.gmt_unix_time);
        String filename = null;
        if ( IamRequester ) filename = Integer.toString(date.getYear()+1900) + "_" +
              Integer.toString(date.getMonth()+1) + "_" + Integer.toString(date.getDate()) + "_" +
              Integer.toString(date.getHours()) + "_" + Integer.toString(date.getMinutes()) + "_" +
              Integer.toString(date.getSeconds()) +
              "."+my_SubjectDN_CN+"_"+partner_SubjectDN_CN;
        else
            filename = Integer.toString(date.getYear()+1900) + "_" +
              Integer.toString(date.getMonth()+1) + "_" + Integer.toString(date.getDate()) + "_" +
              Integer.toString(date.getHours()) + "_" + Integer.toString(date.getMinutes()) + "_" +
              Integer.toString(date.getSeconds()) +
              "."+partner_SubjectDN_CN+"_"+my_SubjectDN_CN;
        return save_to_file(filename);
     }
   /**
   *   本SSLsignature_record對象的內容轉換成可視的字符串
   **/ 
     public String toString()
     {
     	String return_str = "交易時間:"+(new Date(random.gmt_unix_time)).toString()+"\r\n";
     	if (IamRequester) //我是請求者
     	{
     	 return_str +="請求者證書:\r\n";
     	 return_str += my_certificate.toString()+"\r\n";
     	 return_str += "簽名請求的內容:\r\n";
     	 return_str += signature_request.toString()+"\r\n";
     	 return_str += "響應者證書:\r\n";
     	 return_str += partner_certificate.toString()+"\r\n";
     	 return_str += "簽名響應的內容:\r\n";
     	 return_str += my_certificate.toString()+"\r\n";
	}
	else
	{
     	 return_str +="請求者證書:\r\n";
     	 return_str += partner_certificate.toString()+"\r\n";
     	 return_str += "簽名請求的內容:\r\n";
     	 return_str += signature_request.toString()+"\r\n";
     	 return_str += "響應者證書:\r\n";
     	 return_str += my_certificate.toString()+"\r\n";
     	 return_str += "簽名響應的內容:\r\n";
     	 return_str += signature_reply.toString()+"\r\n";
     	}
     	return return_str;
     }
  /**
  *  main:解釋一個簽名記錄文件
  *  用法:java com.zsusoft.zfl.SSLsignature_record 文件名
  **/
  public static void main(String args[])
   {
   	if ( args.length != 1){
   		System.err.println("用法:java com.zsusoft.zfl.SSLsignature_record 文件名");
   		System.exit(-1);
   	}
   	SSLsignature_record record = SSLsignature_record.restore_from_file(args[0]);
   	if ( record != null ){
   		System.out.println(record.toString());
   	}
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜久久久久久久久电影网 | 91国偷自产一区二区三区成为亚洲经典 | 亚洲精品国产视频| 久久精品水蜜桃av综合天堂| 91精品麻豆日日躁夜夜躁| 欧美亚洲高清一区二区三区不卡| 91女人视频在线观看| 91视视频在线观看入口直接观看www| 美女网站色91| 毛片av中文字幕一区二区| 久久精品国产澳门| 国产永久精品大片wwwapp| 国产精品夜夜嗨| 岛国av在线一区| 91蜜桃网址入口| 欧美三级午夜理伦三级中视频| 欧美日韩一区国产| 日韩欧美国产小视频| 国产日韩欧美一区二区三区综合| 欧美日韩一区二区三区视频| 欧美日韩精品一区二区三区四区 | 欧美日韩三级在线| 日韩欧美在线观看一区二区三区| 日韩三级精品电影久久久| 久久综合色之久久综合| 国产日产欧美一区二区视频| 中文字幕欧美一| 一卡二卡欧美日韩| 精品制服美女久久| 91美女福利视频| 日韩三级在线观看| 自拍偷在线精品自拍偷无码专区| 亚洲mv大片欧洲mv大片精品| 国内精品写真在线观看| 91影院在线免费观看| 日韩亚洲欧美在线| 成人免费一区二区三区视频 | 在线观看一区不卡| 日韩精品一区二区三区蜜臀 | 国产欧美一区二区精品久导航| 亚洲欧洲另类国产综合| 日韩成人一级片| 99久久精品免费| 精品伦理精品一区| 91精品国产综合久久久蜜臀粉嫩 | 日本韩国欧美三级| 欧美一区二区三区电影| 亚洲同性同志一二三专区| 日韩电影免费在线看| 97精品国产露脸对白| ww亚洲ww在线观看国产| 亚洲国产视频一区| 成人aaaa免费全部观看| 日韩欧美自拍偷拍| 亚洲bt欧美bt精品| 色婷婷综合久久久中文字幕| 久久久影院官网| 奇米色一区二区| 欧美日韩黄色影视| 一区二区三区四区亚洲| 成人高清视频免费观看| 久久久亚洲精品石原莉奈| 美女视频一区二区三区| 日韩一区二区三区四区五区六区| 一区二区三区在线视频播放| av资源网一区| 国产精品久久久久久久午夜片 | 99精品视频在线播放观看| 久久欧美中文字幕| 精品一区二区三区香蕉蜜桃| 337p亚洲精品色噜噜| 亚洲一卡二卡三卡四卡无卡久久| av午夜精品一区二区三区| 中文字幕av不卡| 国产sm精品调教视频网站| 2023国产精品视频| 久久精品国产在热久久| 精品福利av导航| 亚洲丝袜另类动漫二区| 天天操天天色综合| 亚洲444eee在线观看| 国产一区美女在线| 国产精品中文字幕日韩精品| 亚洲精选视频在线| 美女免费视频一区二区| 国产精品亚洲视频| 亚洲精品久久久久久国产精华液| 精品三级av在线| 欧美老肥妇做.爰bbww| 夜夜嗨av一区二区三区中文字幕| 91在线免费看| 亚洲一区二区三区四区五区黄| 91黄色激情网站| 日本不卡123| 日本一区二区三区在线不卡| 成人的网站免费观看| 亚洲精品免费在线播放| 欧美日韩视频专区在线播放| 麻豆91精品视频| 国产精品午夜久久| 欧美天堂一区二区三区| 久草热8精品视频在线观看| 久久精品人人做人人综合| 91黄色在线观看| 免费高清不卡av| 国产精品嫩草影院com| 欧美视频在线播放| 国产乱色国产精品免费视频| 亚洲欧美日韩电影| 一区在线观看视频| 欧美午夜寂寞影院| 国产成人精品aa毛片| 亚洲高清一区二区三区| 欧美大片在线观看一区| 91同城在线观看| 激情偷乱视频一区二区三区| 国产精品久久久久久久久久免费看| 欧美亚洲一区三区| 国产不卡在线播放| 日韩av不卡一区二区| 亚洲国产高清在线观看视频| 欧美日韩国产小视频| 成人一级片网址| 秋霞电影一区二区| 亚洲三级在线看| 国产亚洲欧美日韩在线一区| 欧美性大战久久| 成人av免费在线播放| 另类调教123区| 亚洲一区二区视频| 国产精品久久毛片a| 欧美电影免费观看高清完整版在线观看 | 国模大尺度一区二区三区| 亚洲一区二区av在线| 专区另类欧美日韩| 在线综合亚洲欧美在线视频| 国产福利91精品一区| 亚洲国产美女搞黄色| 亚洲日本乱码在线观看| 国产欧美一区二区三区鸳鸯浴| 日韩一区二区在线免费观看| 欧美亚洲国产一卡| 色妞www精品视频| 国产成人精品免费网站| 精品一区二区国语对白| 免费不卡在线视频| 亚洲一区免费视频| 亚洲欧美国产三级| 一区二区三区在线高清| 欧美国产精品久久| 国产精品大尺度| 国产精品免费观看视频| 国产精品视频线看| 国产精品二三区| 亚洲欧美另类久久久精品2019| 国产精品福利一区二区| 国产精品人妖ts系列视频| 国产精品丝袜久久久久久app| 国产欧美日本一区视频| 中文字幕成人在线观看| 国产精品久久久久久久久图文区| 国产精品素人视频| 夜夜夜精品看看| 肉色丝袜一区二区| 久久av资源网| 国产精品1区2区3区| 不卡的av网站| 91福利区一区二区三区| 88在线观看91蜜桃国自产| 欧美一区二区免费| 久久久精品tv| 亚洲综合一二三区| 日本最新不卡在线| 国产一区视频在线看| www.欧美色图| 欧美群妇大交群的观看方式| 欧美va在线播放| 亚洲欧美在线观看| 丝袜美腿亚洲综合| 国产高清亚洲一区| 欧美性一级生活| 久久人人超碰精品| 亚洲一区中文日韩| 国产制服丝袜一区| 色婷婷精品大视频在线蜜桃视频| 日韩一区二区免费在线观看| 久久久99精品久久| 亚洲午夜av在线| 国产大陆亚洲精品国产| 欧美色爱综合网| 欧美国产成人在线| 美女精品一区二区| 91免费观看国产| 久久久影视传媒| 亚洲国产成人av网| 国产成人精品网址| 欧美一区二区福利在线| 亚洲男人的天堂网| 国产精品99久久久久| 欧美日韩精品免费|