用C ++安全地发送数据?

时间:2012-12-09 17:11:18

标签: c++ security boost openssl cryengine

有人可以给我一些关于我的问题的指导 - 我正在编写游戏(CryEngine),我需要知道如何将数据 - 包括用户名和密码 - 发送到服务器,在服务器中可以将数据存储在数据库中并显示在显示玩家“统计数据”的网页。我想从用户名和密码开始,因为它们是我认为最重要的,其他东西真的不需要加密。虽然,黑莓可能会更难改变他们的统计数据。

那我该怎么做呢?我知道我的C ++方式并且我已经使用了一段时间,我已经建立了一个系统来存储和捕获玩家的杀戮和XP等等,但这听起来更棘手。听起来我要大量使用BOOST和可能的OpenSSL,但从未使用过这些库或者不得不建立一个安全的系统,我有点困惑。非常感谢任何帮助或一般指示!

2 个答案:

答案 0 :(得分:3)

打开SSL听起来很稳固,看看这里:http://www.ibm.com/developerworks/linux/library/l-openssl/index.html

你可以使用几乎所有的加密库(最好不要编写你自己的东西)但是因为它无论如何都是客户端/服务器,使用专门为此设计的协议/系统,你最好的选择是openSSL。 其余的是一个安全的服务器,在其上运行某种应用程序(Java EE)并处理某种数据库中的条目。 然后选择一些您喜欢的网络语言来检索数据库条目。

PS:不要现场直播(例如,每个爆头都是一个条目),但是传输一轮的最终结果,或每X分钟一次。

答案 1 :(得分:0)

我建议使用HTTPS。

链接libcurl以及网上的一些食谱示例,您可以在几分钟或几小时内准备好客户端部分。如果您是初学者,手动摆弄OpenSSL可能需要数天或数周。

对于服务器部分,您可以使用游戏的现有Web服务器。你的游戏 会有一个网站,不是吗?用户也可以通过他们的网络浏览器访问他们的统计数据。

如果您想保护分数更新机制,请使用常规加密API(如crypt)和隐藏在代码中的密钥来模糊/反混淆播放器的分数更新密码。它是混淆,而不是加密,因为密钥最终驻留在客户端计算机上,可以使用调试器恢复。