2017-2018-2 20165215 實驗五 網絡編程與安全

2017-2018-2 20165215 實驗五 網絡編程與安全

實驗報告封面

實驗內容

網絡編程與安全-1

1. 任務詳情:html

兩人一組結對編程:java

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

2. 相關知識點git

  • 算符優先法求解表達式:(生成後綴表達式+後綴表達式求值)
    • 步驟1:創建符號運算的優先級關係表

    • 步驟2
      • 設操做數棧OPND,置空;運算符棧OPTR,最低符號#壓進OPTR;
      • 讀入字符C,C如果操做數, 進OPND;如果運算符,與OPTR棧頂元素(A)比較,根據算符優先級,決定如何處理:
        • A<C, C壓入OPTR棧;
        • A=C, A從OPTR出棧;
        • A>C,A出棧,從OPND依次彈出兩個操做數y、x, 計算Z=x A y,Z壓入OPND棧。C壓進OPTR.
      • 重複上一步,直至表達式結束。

3. 實驗截圖算法

4. 碼雲連接編程

網絡編程與安全-2

1. 任務詳情:數組

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

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

2. 相關知識點服務器

  • 當兩個程序須要通訊時,它們能夠經過使用Socket類創建套接字對象並鏈接在一塊兒(端口號和IP地址的組合得出一個網絡套接字)
  • Socket類的構造方法爲Socket(String host, int port),參數host是服務器的IP地址,port是端口號
  • ServerSocket 的構造方法是 ServerSocket(int port),port 是一個端口號
  • 可使用方法accept()將客戶端的套接字和服務器端的套接字鏈接起來
  • 從套接字鏈接中讀取數據與從文件中讀取數據有着很大的不一樣,從文件中讀取數據時,全部的數據都已經在文件中了,而使用套接字鏈接時,可能在另外一端數據發送以前,就已經開始讀取了
  • 注意accept方法也會阻塞線程的執行,直到接收到客戶的呼叫

3. 實驗截圖網絡

4. 碼雲連接測試

網絡編程與安全-3

1. 任務詳情:

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

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

2. 參考資料

AES加密示例

3. 實驗截圖

4. 碼雲連接

網絡編程與安全-4

1. 任務詳情:

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

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

2. 參考資料

密鑰交換算法DH(Java實現)

3. 實驗截圖

4. 碼雲連接

網絡編程與安全-5

1. 任務詳情:

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

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

2. 參考資料

Java 密碼學算法

3. 實驗截圖

4. 碼雲連接

PSP(Personal Software Process)時間統計:

步驟 耗時 百分比
需求分析 30min 9.09%
設計 90min 18.1%
代碼實現 120min 36.3%
測試 60min 18.1%
分析總結 30min 9.09%

實驗小結

本次實驗大量運用到以前的知識,特別是教材第十三章《Java網絡編程》與Java密碼學部分,在實驗過程當中,我不只複習鞏固了以前的知識點,還更進一步地掌握瞭如何將它們融會貫通。

相關文章
相關標籤/搜索