<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    /********************************************************************
     * 項目名稱    :rochoc   <p>
     * 包名稱      :rochoc.net.security <p>
     * 文件名稱    :SSLClient   <p>
     * 編寫者      :LuckyStar    <p>
     * 編寫日期    :2008-2-13    <p>
     * 程序功能(類)描述 :安全通訊的客戶端       <p>
     *
     * 程序變更日期   :
     * 變更作者    :
     * 變更說明    :
    *******************************************************************
    */
    package rochoc.net.security;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.security.KeyStore;
    import java.security.SecureRandom;

    import javax.net.ssl.KeyManagerFactory;
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSocket;
    import javax.net.ssl.SSLSocketFactory;
    import javax.net.ssl.TrustManagerFactory;

    /**
     * 類名:SSLClient  <p>
     * 類描述: 安全通訊的客戶端<p>
     * 編寫者 :luoc<p>
     * 編寫日期 :2005-6-30<p>
     * 主要public成員變量:<p>
     * 主要public方法:   <p>
     *
    */

    public class SSLClient
    {
        
    /**
         *構(gòu)造函數(shù)說明:       <p>
         *參數(shù)說明:   <p>
        *
    */
        
    public SSLClient()
        {
            init();
        }
       
        
    /**
        * 方法名稱:init<p>
        * 方法功能:初始化客戶端Socket            <p>
        * 參數(shù)說明: <p>
        * 返回:void <p>
        * 作者:luoc
        * 日期:2005-6-30
        *
    */
        
    public void init()
        {
            
    //server socket's ip and port
            String host="localhost";
            
    int port=2001;
            
    //keystore path and password
            String keyf="..\\key\\mystore";
            String trustf
    ="..\\key\\srvtrust";
            String pass
    ="123456";
            
    //set up a connection
            SSLSocketFactory ssf=null;
            
    try
            {
                
    //init context
                SSLContext ctx=SSLContext.getInstance("TLS");           
                KeyManagerFactory kmf
    =KeyManagerFactory.getInstance("SunX509");
                TrustManagerFactory tmf
    =TrustManagerFactory.getInstance("SunX509");           
                KeyStore ks
    =KeyStore.getInstance("JKS");
                KeyStore tks
    =KeyStore.getInstance("JKS");
                
    //load keystore
                ks.load(new FileInputStream(keyf),pass.toCharArray());
                tks.load(
    new FileInputStream(trustf),pass.toCharArray());
                kmf.init(ks,pass.toCharArray());
                tmf.init(tks);
                ctx.init(kmf.getKeyManagers(),tmf.getTrustManagers(),
    new SecureRandom());
                System.out.println(
    "load keystore success.");
                ssf
    =ctx.getSocketFactory();
                
    //create socket
                socket=(SSLSocket)ssf.createSocket(host,port);
                System.out.println(
    "create socket success.");
                
    //handshake
                socket.startHandshake();
                System.out.println(
    "handshake success.");
            }
    catch(Exception e)
            {
                System.out.println(
    "establish connection error.");
                e.printStackTrace();
                
    return;
            }
           
        }
       
        
    /**
        * 方法名稱:sendMessage<p>
        * 方法功能:發(fā)送信息            <p>
        * 參數(shù)說明:
    @param msg <p>
        * 返回:void <p>
        * 作者:luoc
        * 日期:2005-6-30
        *
    */
        
    public void sendMessage(String msg)
        {
            
    try
            {
                OutputStream out
    =socket.getOutputStream();
                InputStream in
    =socket.getInputStream();
                
    //send message
                System.out.println("send message:["+msg+"]");
                out.write(msg.getBytes());
                out.write(TranTool.DATA_END);
                out.flush();
                
    //receive message
                byte [] buff=new byte[1024];
                
    int len=0;
                System.out.println(
    "recv len:"+(len=in.read(buff)));
                System.out.println(
    "receive from srv:[");           
                System.out.print(
    new String(buff,0,len));           
                System.out.println(
    "] receive end.");
            }
    catch(IOException e)
            {
                e.printStackTrace();
            }
    finally
            {
                
    try
                {
                    socket.close();
                }
    catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
        
    /*全局變量*/
        SSLSocket socket
    =null;
       
        
    //測試函數(shù)
        public static void main(String args[])
        {
            SSLClient sc
    =new SSLClient();
            String msg
    ="Hello SSL Server.";
            
    if(args.length==1)
            {
                msg
    =args[0];
            }
    else
            {
                System.out.println(
    "Useage:Please input the message you want to send.");
            }
            sc.sendMessage(msg);
        }
    }
    posted on 2008-02-13 22:05 禮物 閱讀(2334) 評論(3)  編輯  收藏 所屬分類: CA

    評論

    # re: JAVA中SSL證書認證通訊-Client 2008-07-09 16:20 JessonWoo
    請問,能用這個程序查看服務(wù)器的證書信息嗎?  回復(fù)  更多評論
      

    # re: JAVA中SSL證書認證通訊-Client 2008-07-09 18:18 JessonWoo
    請問,如何建立一個SSLClient,以實現(xiàn)和指定的服務(wù)器SSL連接,發(fā)送請求client_Hello,以使得服務(wù)器返回一個server_Hello和一個certificate(即handshake的第一階段)。
    盼不吝賜教!
      回復(fù)  更多評論
      

    # re: JAVA中SSL證書認證通訊-Client 2009-03-19 11:00 liyulin
    TranTool 這個類在哪個包中呀  回復(fù)  更多評論
      

    主站蜘蛛池模板: 无码午夜成人1000部免费视频| 曰批视频免费30分钟成人| 乱人伦中文视频在线观看免费| 亚洲精品国产高清在线观看| 色www免费视频| 亚洲毛片免费视频| 免费大片黄手机在线观看| 亚洲自偷自偷偷色无码中文| 亚洲国产成人九九综合| 美女黄网站人色视频免费| 日韩成人免费aa在线看| 亚洲av无码国产精品色午夜字幕| 亚洲国产精品午夜电影| www.av在线免费观看| 中国在线观看免费高清完整版| 国产成人亚洲综合| 亚洲成人激情小说| 久久精品无码精品免费专区| 亚洲国产成人久久一区WWW| 亚洲人成人77777在线播放| 搡女人免费视频大全| 亚洲a在线视频视频| a级毛片免费观看网站| 亚洲精品无码MV在线观看| 国产成人综合亚洲绿色| 毛片a级毛片免费观看免下载| 亚洲Av永久无码精品一区二区| 国产在线a免费观看| 老子影院午夜伦不卡亚洲| 拨牐拨牐x8免费| 人禽伦免费交视频播放| 亚洲国产综合专区在线电影 | 久久久久女教师免费一区| 国产美女无遮挡免费视频| 日本亚洲精品色婷婷在线影院| 久久午夜羞羞影院免费观看| 亚洲码国产精品高潮在线| 久久av免费天堂小草播放| 亚洲综合亚洲国产尤物| 亚洲视频免费在线播放| 美女扒开屁股让男人桶爽免费|