20175326實驗五 網絡編程與安全

20175326實驗五 網絡編程與安全

實驗步驟

實驗一

  • 兩人一組結對編程
  • 結對實現中綴表達式轉後綴表達式的功能 MyBC.java
  • 結對實現從上面功能中獲取的表達式中實現後綴表達式求值的功能,調用MyDC.java
    中綴表達式,雖然符合咱們的數學計算習慣,可是並不符合計算機運算的方式。後綴表達式嚴格按照從左到右進行計算的模式 符合計算機運行方式而中綴表達式須要計算機遇到符號後向後掃描一位 若爲括號或優先級更高的操做符還須要向後繼續掃描。java

    完成效果以下圖。git

碼雲代碼

實驗二

  • 結對編程:一人負責客戶端,一人負責服務器
  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式經過網絡發送給服務器
  • 服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果
    Java爲TCP協議提供了兩個類,分別在客戶端編程和服務器端編程中使用它們。在應用程序開始通訊以前,須要先建立一個鏈接,由客戶端程序發起;而服務器端的程序須要一直監聽着主機的特定端口號,等待客戶端的鏈接。在客戶端中咱們只須要使用Socket實例,而服務端要同時處理ServerSocket實例和Socket實例;兩者而且都使用OutputStream和InpuStream來發送和接收數據。

實驗截圖

碼雲代碼

實驗三

  • 加密結對編程:一人負責客戶端,一人負責服務器
  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密後經過網絡把密文發送給服務器
  • 服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,能夠用數組保存),而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果

運行結果如圖:算法

碼雲代碼

實驗四

  • 密鑰分發結對編程:1人負責客戶端,一人負責服務器
  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文發送給服務器
  • 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  • 服務器接收到後綴表達式表達式後,進行解密,而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果編程

    以甲乙雙方發送數據爲模型進行分析:甲方(消息發送)構建密鑰對(公鑰+私鑰),甲方公佈公鑰給乙方(消息接收),乙方以甲方發送過來的公鑰做爲參數構造密鑰對(公鑰+私鑰),將構造出來的公鑰公佈給甲方,甲方用「甲方的私鑰+乙方的公鑰」構造本地密鑰,乙方用「乙方的私鑰+甲方的公鑰」構造本地的密鑰,甲乙雙方能夠經過本地密鑰進行數據的加密和解密,而後就可使用AES這類對稱加密算法進行數據的安全傳送了。數組

運行結果如圖:安全

碼雲代碼

實驗五

  • 完整性校驗結對編程:1人負責客戶端,一人負責服務器
  • 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  • 客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文和明文的MD5値發送給服務器
  • 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  • 服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  • 客戶端顯示服務器發送過來的結果

運行結果如圖:服務器

碼雲代碼

實驗心得

本次實驗考察的是網絡編程與安全,基於四則運算來進行的,與之前進行的實驗有相同部分,能夠參考之前的代碼,因此此次實驗並非很困難。兩人結對的方式也讓實驗能夠互幫互助,減輕實驗的壓力,客服端/服務器功能在學習的時候並非很牢固,經過此次實驗增強鞏固了他的運用。
相關文章
相關標籤/搜索