20165221 實驗五 網絡編程與安全

實驗封面

  • 課程:Java程序設計
  • 班級:1652班
  • 姓名:譚笑
  • 學號:20165221
  • 指導教師:婁嘉鵬
  • 實驗日期:2018年5月28日
  • 實驗時間:15:25 - 17:15
  • 實驗序號:實驗五
  • 實驗名稱:網絡編程與安全java

    實驗要求

  • 1.沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程算法

  • 2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導
  • XP基礎,XP核心實踐,相關工具。
  • 嚴禁抄襲。編程

實驗步驟

  • 1.編寫MyBC.java實現中綴表達式轉後綴表達式的功能
    編寫MyDC.java實現從上面功能中獲取的表達式中實現後綴表達式求值的功能數組

    提交點一

  • 知識點:中綴轉後綴的算法可描述爲:
一、設置一個運算符棧,設置一個後綴表達式字符串;
二、從左到右依次對中綴表達式中的每一個字符ch分別進行如下處理,直至表達式結束:
三、若ch是左括號‘(’,將其入棧;
四、若ch是數字,將其後連續若干數字添加到後綴表達式字符串以後,並添加空格做爲分隔符;
五、若ch是運算符,先將棧頂若干優先級高於ch的運算符出棧,添加到後綴表達式字符串以後,再將ch入棧。當‘(’運算符在棧中時,它的優先級最低。
六、若ch是‘)’,則若干運算符所有出棧,直到出棧的是左括號,一對括號匹配。
七、若表達式結束,將棧中運算符所有出棧,添加到後綴表達式字符串以後。

運行截圖:
安全

提交點二

  • 結對編程:一人負責客戶端,另外一人負責服務器服務器

  • 注意責任歸宿,要會經過測試證實本身沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式經過網絡發送給服務器
  • 服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果
  • 此次我作的是客戶端,合做的小夥伴作的服務器。網絡

結果截圖:
編輯器

提交點三

  • 加密結對編程:1人負責客戶端,一人負責服務器工具

  • 注意責任歸宿,要會經過測試證實本身沒有問題
  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密後經過網絡把密文發送給服務器
  • 服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,能夠用數組保存),而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果
  • 上傳測試結果截圖和碼雲連接學習

運行截圖

提交點四

  • 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  • 其餘要求同任務三
  • 相關知識:
  • 執行密鑰協定的標準算法是DH算法(Diffie-Hellman算法),分爲如下兩步:
  • 建立DH公鑰和私鑰;
  • 建立共享密鑰。

運行截圖

提交點五

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

  • 注意責任歸宿,要會經過測試證實本身沒有問題
    基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文和明文的MD5値發送給服務器
  • 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  • 服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果

運行截圖

實驗感覺

  • 此次實驗明顯有了難度,作起來很困難,但最後仍是在室友的幫助下,完成了試驗,仍是頗有成就感的!
相關文章
相關標籤/搜索