2012-12-09 40 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)。 –

相关问题