2012-05-24 39 views
6

我最近開發了一款在線多人遊戲,效果很好。有一箇中央服務器處理與客戶端的TCP連接,並且它們都接收和發送數據。
有沒有一種方法來驗證發送的數據在接收器讀取之前沒有被修改?
TCP連接以某種方式處理它嗎?如果不是什麼是最好的方式(不要求代碼)來實現它?
到現在爲止,我想出了這些想法:如何驗證客戶端 - 服務器連接之間的數據完整性?

  • 修改發送加入某種驗證值的數據,這樣的數據包長度。
  • 收到數據包後,請求服務器再次發送並驗證它們是否相等。

我搜索了一個常用的解決方案,但找不到多少。
加密應該是我最後的選擇。

編輯
一個簡單的方法來實現這一目標:

  1. MD5
  2. SH A1
  3. SSL
+5

由黑客修改或由噪聲/錯誤? TCP/IP確實照顧後者,而不是前者。 –

+0

你介意簡單地解釋它是如何發生的嗎? – mastaH

+2

散列數據,並將散列值添加到您發出的數據。另一端的人應該檢查哈希是否與他們收到的數據匹配。這應該注意噪音錯誤。 – eboix

回答

5

與Bart達成一致意見,您可能希望查看使用Hash方法進行數據驗證。

相關問題