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

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

表達式求值 .com 客戶端和服務器 3des soc 解決 數據結構 基於 加密算法

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

課程:《程序設計與數據結構》
班級: 1723
姓名: 李聞洲
學號:20172320
實驗教師:王誌強
實驗日期:2018年6月18日
必修/選修: 必修

實驗內容

結對編程

  • 實驗(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. 客戶端顯示服務器發送過來的結果
  • 實驗(3)加密結對編程
    1人負責客戶端,一人負責服務器
  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密後通過網絡把密文發送給服務器
  4. 服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,可以用數組保存),然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  5. 客戶端顯示服務器發送過來的結果
  • 實驗(4)密鑰分發結對編程:
    1人負責客戶端,一人負責服務器
  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文發送給服務器
  4. 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  5. 服務器接收到後綴表達式表達式後,進行解密,然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  6. 客戶端顯示服務器發送過來的結果
  • 實驗(5)完整性校驗結對編程:1人負責客戶端,一人負責服務器
  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文和明文的MD5値發送給服務器
  4. 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  5. 服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  6. 客戶端顯示服務器發送過來的結果

    實驗過程及結果:

  • 實驗(1)
    直接搬運四則運算的代碼
    技術分享圖片
  • 實驗(2)
    將四則運算復制到老師給的模板中,客戶端先將四則運算的自動生成題目改為輸入中綴表達式,後將生成的後綴表達式傳給服務器,最後由服務器調用後綴計算類,最後將答案反饋給客戶端
    技術分享圖片
  • 實驗(3)
    加入了對稱加密,先用DES加密算法生成密鑰,並引用密鑰,將表達式加密傳給服務器,將密鑰文件復制進去,在服務器裏讀取密鑰並解密,以後計算並傳回客戶端
    技術分享圖片
  • 實驗(4)
    技術分享圖片
  • 實驗(5)

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

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

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