1. 程式人生 > >20172308 2017-2018-2 《程序設計與數據結構》實驗五報告

20172308 2017-2018-2 《程序設計與數據結構》實驗五報告

一起 sed soc 代碼 aes算法 成功 結構 自動生成 bubuko

20172308 2017-2018-2 《程序設計與數據結構》實驗五報告

課程:《程序設計與數據結構》
班級: 1723
姓名: 馬瑞蕃
學號:20172327
實驗教師:王誌強
實驗日期:2018年6月13日~2018年6月18日
必修/選修: 必修

1.實驗內容

+ 任務1:

兩人一組結對編程:
1.參考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA
2.結對實現中綴表達式轉後綴表達式的功能 MyBC.java
3.結對實現從上面功能中獲取的表達式中實現後綴表達式求值的功能,調用MyDC.java
4.上傳測試代碼運行結果截圖和碼雲鏈接

+ 任務2:


結對編程:(1人負責客戶端,一人負責服務器)

1.註意責任歸宿,要會通過測試證明自己沒有問題

2.基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

3.客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式通過網絡發送給服務器

4.服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

5.客戶端顯示服務器發送過來的結果

6.上傳測試結果截圖和碼雲鏈接
+ 任務3:


加密結對編程:(1人負責客戶端,一人負責服務器)

1.註意責任歸宿,要會通過測試證明自己沒有問題

2.基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

3.客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密後通過網絡把密文發送給服務器

4.服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,可以用數組保存),然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

5.客戶端顯示服務器發送過來的結果

6.上傳測試結果截圖和碼雲鏈接
+ 任務4:


密鑰分發結對編程:(1人負責客戶端,一人負責服務器)

1.註意責任歸宿,要會通過測試證明自己沒有問題

2.基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

3.客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文發送給服務器
客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換

4.服務器接收到後綴表達式表達式後,進行解密,然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

5.客戶端顯示服務器發送過來的結果

6.上傳測試結果截圖和碼雲鏈接
+ 任務5:


網絡編程與安全

完整性校驗結對編程:(1人負責客戶端,一人負責服務器)

1.註意責任歸宿,要會通過測試證明自己沒有問題

2.基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

3.客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文和明文的MD5値發送給服務器

4.客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換

5.服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

6.客戶端顯示服務器發送過來的結果

7.上傳測試結果截圖和碼雲鏈接

2. 實驗過程及結果

  • 實驗一:四則運算以前做過,直接進行截圖
    實驗過程:
    技術分享圖片

  • 實驗二:和李聞洲同學一起做的,客戶端先將四則運算的自動生成題目改為輸入中綴表達式,後將生成的後綴表達式傳給服務器,最後由服務器調用後綴計算類,最後將答案反饋給客戶端。
    實驗過程:
    技術分享圖片

  • 實驗三:加入了對稱加密,所以改的部分還挺多,首先我改了客戶端類,並先用DES加密算法生成密鑰,並引用密鑰,將後綴表達式加密,傳給服務器,然後我在服務器類下面將密鑰文件復制進去,在服務器裏,讀取密鑰並將傳過來的加密的後綴表達式解密,之後就和實驗二一樣,計算並反饋。
    實驗過程:
    技術分享圖片
    技術分享圖片

  • 實驗四:將對稱加密變為非對稱加密,過程挺麻煩,我畫了一張圖:
    技術分享圖片

實驗過程:
技術分享圖片
技術分享圖片

  • 實驗五:完成課本二十八章的代碼編寫

3. 實驗過程中遇到的問題和解決過程

問題1:在做第四個實驗時,發現客戶端總是提示密鑰輸出到最後好像輸出不了了,服務器一點東西都收不到。
問題1解決方案:這個問題其實有很多的同學都遇到了,我找他們咨詢,他們告訴我換個加密方式,所以我將DESede方法改為AES,發現就成功了。

參考資料

  • 《Java程序設計與數據結構教程(第二版)》
  • 《Java程序設計與數據結構教程(第二版)》學習指導

20172308 2017-2018-2 《程序設計與數據結構》實驗五報告