Java第四次實驗報告

來源:互聯網
上載者:User

標籤:

                                                     北京電子科技學院(BESTI)

                     實     驗    報     告

      課程:Java   班級: 1353     姓名:郭皓    學號:20135327

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

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

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

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

      實驗目的與要求:  

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

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

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

      實驗儀器:

名稱

型號

數量

Lenovo

 V480

1

 Lenovo   YOga 13  1

 

      統計的PSP(Personal Software Process)時間

 

步驟

耗時(min)

百分比

需求分析

10

4.17%

設計

60

25%

代碼實現

120

50%

測試

30

12.5%

分析總結

20

 8.33%

 

 

 

一、    實驗內容與步驟

實驗人員:

用戶端  :20135327 郭皓  

伺服器  :20135329 李海空 http://www.cnblogs.com/haikong/

實驗內容:

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

2       對通訊內容使用對稱DES密碼編譯演算法進行加密

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

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

5       其他安全措施

 

實驗步驟:

1.用戶端對資訊進行DES加密(使用RSA公開金鑰加密DES密鑰)

2.伺服器接受資訊並解密(使用RSA私密金鑰)

3.驗證資訊完整性

 

實驗代碼:

import java.math.*;

import java.net.*;
import java.security.Key;

import java.io.*;

import javax.crypto.Cipher;

 

public class Client {

 

public static void main(String srgs[]) {

try {

Socket socket = new Socket("172.30.113.2", 4421);

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


PrintWriter out = new PrintWriter(new BufferedWriter(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 ck = new Enc_RSA().Enc(s);

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

String result = DigestCalc.hash(s);

System.out.println("MD5:" + result);

 

out.println(ck);

out.println(cs);

out.println(result);

 

} catch (Exception e) {

System.out.println(e);

} finally {

 

}

}

}

 

實驗:

 

 

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

1.發送經過DES加密後的密文時採用的是將其轉化為字串的方式,在這裡用戶端採用的是toString()函數,伺服器採用的是getBytes()函數,傳輸後的密文出現錯誤。最後進過討論使用了二進位轉十六進位輸出密文。代碼如下:

public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}

2.兩台電腦一直無法聯通

在實驗室時我們起初是從寢室區域網路上用自己的IPv4地址,然後顯示連線逾時。

我們認為可能是兩台電腦沒有在同一個網路裡而不發連結成功,嘗試著用一台電腦串連網路然後wifi給另一台電腦使用,然後再次串連兩台電腦,終於連通成功了。

並不知道為什麼,可能是因為區域網路的原因吧!

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.