2012-12-09 41 views
1

有人可以給我一些指導我的問題 - 我正在寫一個遊戲(CryEngine),我需要知道如何發送數據 - 包括用戶名和密碼到服務器,他們可以存儲在數據庫中並顯示在網頁上顯示玩家「統計數據」。我想先從用戶名和密碼開始,因爲他們是我最重要的,而其他的東西實際上並不需要加密。雖然,這可能會讓黑客更難以改變他們的統計數據。以C++安全地發送數據?

那麼我會怎麼做呢?我知道我的C++方式,我已經使用了一段時間,我已經建立了一個系統來存儲和捕捉玩家的殺戮和XP等,但這聽起來更棘手。這聽起來像我要大量使用BOOST和可能的OpenSSL,但從未在使用這些庫之前或必須建立一個安全的系統,我有點困惑。任何幫助或大方向非常感謝!

+0

你在這裏問什麼,真的嗎?你想通過網絡發送加密的數據嗎? –

+0

即使您可以安全地傳輸密碼,請不要在沒有很好理由的情況下將密碼存儲在數據庫中。只需將它們存儲爲安全哈希。 – Voo

回答

3

Open SSL聽起來很紮實,看看這裏:http://www.ibm.com/developerworks/linux/library/l-openssl/index.html

你可以使用幾乎所有的加密庫(最好不要寫自己的東西),但由於它是客戶端/服務器,無論如何,使用一個協議/系統,旨在做到這一點,你最好的選擇是openSSL。 其餘的是一個安全的服務器,運行某種應用程序(Java EE)並處理某些數據庫中的條目。 然後選擇您偏好的一些網頁語言來檢索數據庫條目。 PS:不要直播(例如,每個爆頭都是一個條目),但傳輸一輪的最終結果,或每X分鐘傳一次。

0

我建議使用HTTPS。

libcurl的鏈接和一些網上的食譜示例,您可以在幾分鐘或幾小時內準備客戶端部分。手動擺弄OpenSSL可能需要幾天或幾周,如果你是新手。

對於服務器部分,您可以使用遊戲現有的Web服務器。你的遊戲將有一個網站,不是嗎?用戶也可以通過他們的網絡瀏覽器訪問他們的統計數據。

如果您想保護分數更新機制,請使用像crypt這樣的常規加密API和隱藏在代碼中的密鑰來混淆/反混淆玩家的分數更新密碼。這是模糊處理,而不是加密,因爲密鑰最終駐留在客戶端計算機上,並且可以通過調試器進行恢復。

+0

那麼libcurls的目的究竟是什麼?我將所有的數據保存到一個文件,然後用libcurl將它發送到服務器?它將如何工作? –

+0

'libcurl'是一個HTTP/HTTPS客戶端(也包括FTP和其他協議)。你可以閱讀所有關於'libcurl' [here](http://curl.haxx.se/libcurl/)。尤其要特別注意[this one](http://curl.haxx.se/libcurl/c/postit2.html)和[this one]這樣的例子(http://curl.haxx.se/libcurl/c/https的.html)。 –

相關問題