【问题标题】:Sending data securely in C++? [closed]在 C++ 中安全地发送数据? [关闭]
【发布时间】:2012-12-09 17:11:18
【问题描述】:

有人可以就我的问题给我一些指导吗?我正在编写一个游戏(CryEngine),我需要知道如何发送数据——包括用户名和密码到服务器,在那里它们可以存储在数据库中并显示在显示球员“统计数据”的网页。我想从用户名和密码开始,因为它们是我正确的最重要的,其他的东西真的不需要加密。不过,这可能会让黑客更难更改他们的统计数据。

那么我该如何处理呢?我知道我在 C++ 周围的方式,并且我已经使用了一段时间,我已经构建了一个系统来存储和捕获玩家的杀戮和 XP 等,但这一点听起来更棘手。听起来我将大量使用 BOOST 和可能的 OpenSSL,但之前从未使用过这些库或必须制作安全系统,我有点困惑。非常感谢任何帮助或一般指导!

【问题讨论】:

  • 你在这里问什么,真的吗?您想通过网络发送加密数据吗?
  • 请不要在没有充分理由的情况下将密码存储在您的数据库中,即使您可以安全地传输它们。只需将它们存储为安全哈希即可。

标签: c++ security boost openssl cryengine


【解决方案1】:

Open SSL 听起来不错,请看这里:http://www.ibm.com/developerworks/linux/library/l-openssl/index.html

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

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

【讨论】:

    【解决方案2】:

    我建议使用 HTTPS。

    链接到libcurl 并使用来自网络的一些食谱示例,您可以在几分钟或几小时内准备好您的客户部分。如果您是新手,手动摆弄 OpenSSL 可能需要几天或几周的时间。

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

    如果您想保护分数更新机制,请使用crypt 等常规加密 API 和隐藏在代码中的密钥来混淆/反混淆玩家的分数更新密码。这是混淆,而不是加密,因为密钥最终驻留在客户端计算机上,并且可以通过调试器恢复。

    【讨论】:

    • 那么 libcurls 的目的到底是什么?我会将所有数据保存到文件中,然后使用 libcurl 将其发送到服务器吗?它是如何工作的?
    • libcurl 是一个 HTTP/HTTPS 客户端(也是 FTP 和其他协议)。您可以阅读有关 libcurl here 的所有信息。尤其看this onethis one这样的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 2012-01-20
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多