JAVA第四次實驗

來源:互聯網
上載者:User

標籤:

第4次實驗

                                                      實     驗    報     告

      課程:Java   班級: 1353    姓名:王亦可   學號:20135326

      成績:               指導教師:婁嘉鵬        實驗日期:2015.6.9

      實驗密級:           預習程度:              實驗時間:15:30~18:00

      儀器組次:26       必修/選修:選修        實驗序號:04

      實驗名稱: 網路編程與安全                                                      

      實驗目的與要求:

           1.掌握Java網路編程的方法;

         2.掌握Java安全編程的方法;

         3.能綜合使用各種技術。                                              

      實驗儀器:

名稱

型號

數量

電腦

 

2

     

 

     

 

實驗內容:

1       編寫網路通訊程式(基於TCP)

2       對通訊內容使用對稱式加密演算法進行加密

3       使用非對稱演算法分發對稱式加密中使用的密鑰

4       對通訊內容進行摘要計算並驗證

5       其他安全措施

 

相關代碼

用戶端:

package net;

import java.math.*;

import java.net.*;

import java.io.*;

 

public class tcpused {

 

    public static void main(String srgs[]) {

        try {

            //建立串連特定伺服器的指定連接埠的Socket對象

            Socket socket = new Socket("10.0.6.143", 2224);

            //獲得從伺服器端來的網路輸入資料流

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            //獲得從用戶端向伺服器端輸出資料的網路輸出W流

            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

            //建立鍵盤輸入資料流,以便用戶端從鍵盤上輸入資訊eredWriter(new OutputStreamWriter(socket.getOutputStream())), true);

            //建立鍵盤輸入資料流

            BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

            System.out.print("請輸入待發送的資料:");

            String s = stdin.readLine(); //從鍵盤讀入待發送的資料

            String cs = new SEnc().enc(s);

            System.out.println("發送到伺服器的密文為:" + cs);

//            String t=Read.read();

            String ck = new Enc_RSA().Enc();

            System.out.println("發送到伺服器的加密秘鑰為:" + ck);

            String result = DigestCalc.hash(s);

 

            out.println(ck);

            out.println(cs);  //通過網路傳送到伺服器

            out.println(result);

 

 

        } catch (Exception e) {

            System.out.println(e);

        } finally {

            //stdin.close();

            //in.close();

            //out.close();

            //socket.close();                 

        }

    }

}

伺服器:

package net;

import java.net.*;

import java.io.*;

 

public class tcpuse {

 

    public static void main(String srgs[]) throws Exception {

        ServerSocket sc = null;

        Socket socket = null;

        try {

            sc = new ServerSocket(2224);//建立伺服器通訊端

            System.out.println("連接埠號碼:" + sc.getLocalPort());

            System.out.println("伺服器已經啟動...");

            socket = sc.accept();   //等待用戶端串連

            System.out.println("已經建立串連");

            //獲得網路輸入資料流對象的引用

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            ////獲得網路輸出資料流對象的引用

            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

 

            String key = in.readLine();

            System.out.println("從用戶端收到的加密秘鑰為:" + key);

            byte[] keykb = new Dec_RSA().Dec(key);

            String ctext = in.readLine();//讀取用戶端傳送來的資料

            System.out.println("從用戶端收到的密文為:" + ctext);

            String result=SDec.des(ctext, keykb);

            String ha = in.readLine();

 

            String sa = DigestCalc.hash(result);

            boolean q = Compare.compare(sa, ha);

            System.out.println("程式是否完整:" + q);

            out.close();

            in.close();

            sc.close();

        } catch (Exception e) {

            System.out.println(e);

        }

    }

}

用戶端:

 

 

服務端:

連結查看

統計時間

 

步驟

耗時(min)

百分比

需求分析

10

10%

設計

20

20%

代碼實現

40

40%

測試

10

10%

分析總結

20

20%

 

 

二、實驗中遇到的問題及其解決方案

在建立伺服器後,用戶端無法連結而出現的拒絕訪問

解決方案:調整端點名保持一樣

 

實驗人員:

伺服器 :20135226 黃坤

用戶端  :20135326王亦可  http://www.cnblogs.com/baka/

三、實驗體會

  本次實驗遇到一些困難,特別是編程方面,其他的都還好

JAVA第四次實驗

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.