20165323 實驗五 網絡編程與安全

1、實驗報告封面

課程:Java程序設計 班級:1653班 姓名:楊金川 學號:20165323java

指導教師:婁嘉鵬 實驗日期:2018年5月28日算法

實驗時間:15:25 - 17:15 實驗序號:實驗五編程

實驗名稱:網絡編程與安全數組

2、實驗要求

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

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

一、XP基礎,XP核心實踐,相關工具。
二、嚴禁抄襲。網絡

3、實驗步驟

提交點一
提交點要求
1.編寫MyBC.java實現中綴表達式轉後綴表達式的功能
編寫MyDC.java實現從上面功能中獲取的表達式中實現後綴表達式求值的功能編輯器

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

提交點二
2.- 結對編程:一人負責客戶端,另外一人負責服務器工具

注意責任歸宿,要會經過測試證實本身沒有問題學習

  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式經過網絡發送給服務器
  • 服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果
  • 結果截圖:

提交點三
3.- 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密後經過網絡把密文發送給服務器

服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,能夠用數組保存),而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
其餘要求同任務二
相關知識:實現DES加密主要有如下幾個步驟:
一、對稱密鑰的生成和保存;
二、使用對稱密鑰進行加密和解密;
三、從文件中獲取加密時使用的密鑰,使用密鑰進行解密;
結果截圖:

提交點四
4.客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
其餘要求同任務三
相關知識:

執行密鑰協定的標準算法是DH算法(Diffie-Hellman算法),分爲如下兩步:
一、建立DH公鑰和私鑰;
二、建立共享密鑰。
結果截圖:

提交點五
一、.完整性校驗結對編程:1人負責客戶端,一人負責服務器,注意責任歸宿,要會經過測試證實本身沒有問題
二、基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
三、客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文和明文的MD5値發送給服務器
四、客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
五、服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
六、客戶端顯示服務器發送過來的結果
上傳測試結果截圖和碼雲連接
結果截圖:

4、實驗中遇到的問題


解決方法:
更改端口號,斷開服務器及客戶端後從新啓動進行連接

5、實驗感覺

本次實驗對咱們來講是一次不小的挑戰,可是也收穫頗豐。提升了咱們對密碼學內容的瞭解,也增長了兩我的之間的合做度。

相關文章
相關標籤/搜索