【问题标题】:Encode Method for games packages?游戏包的编码方法?
【发布时间】:2012-04-04 12:50:41
【问题描述】:

对不起最后一个问题。 (我讨厌谷歌 traductor)。

我在 MMO(大型多人在线)游戏中工作,但我经常看到一些服务器模拟器,例如 Lineage 2 或 NCSoft 的 Aion。

我的游戏是基于 C++ 的,服务​​器模拟器是 Java 的。

然后,我猜是 URL Encode 方法,因为可以在两种编程语言中编码和解码,但很容易解码。

另一个想法是创建像 uint values 0x00000 + Action Parameters(URLEncoded) 这样的包,但我认为这不是一个好主意,因为它很容易解码。

另一种,是创建一种简单的加密方法,将字符替换为另一个字符。 一个例子:

To encode: Hello
Encoded: 72S/101NK&108-ASK+108P$I111?TRY

解码非常简单,拆分为没有数字字符并将其删除。是每个字符的 ASCII 简单编码,但会大大增加包的大小。

有人知道一种可以在 C++ 和 Java 中解码的编码方法吗?

感谢您的阅读。 祝你有美好的一天,马科斯。

【问题讨论】:

    标签: java c++ package encode


    【解决方案1】:

    我假设您需要一种加密和解密数据的方法(我相信这些是您正在寻找的术语,而不是编码/解码)。还是您正在寻找代码混淆?

    如果这是关于加密/解密的,那么有很多算法在多种编程语言中都有实现。出于对善良的热爱,不要使用 URL 编码或简单的替代密码之类的东西,因为它们很容易被破解。

    在加密和安全方面,您的游戏用户依赖开发者做出稳健的行业标准选择,以保护他们的个人信息和他们在角色构建上投入的时间。所以我建议你要么认真阅读加密和身份验证的概念,然后做出可靠的选择,要么让该领域的专家来处理。

    不要在这里自己动手,因为这通常是使某些东西易于破解的最佳方法。 AES 等加密标准、SSL 和 TLS 等安全协议以及基于证书的身份验证都已完善,经过多年使用的全面测试并正确记录。如果客户端和服务器使用的语言有所不同,这可能无关紧要,但如果有适当的抽象,任何网络通信实际上都是如此。

    【讨论】:

    • @user1233315 你想完成什么?保护您的代码免受逆向工程?通过网络发送加密数据?我认为您想要的是加密,而不是编码。请使用正确的条款。如果你不知道你在说什么,甚至在寻找什么,你就不会成功。我的答案就在这里:使用 AES(加密),通过 SSL 或 TLS(网络)发送数据或使用证书(身份验证)。
    • 通过网络发送加密数据,这是我想要的。我使用了谷歌 traductor,但我认为效果不佳。
    • @user1233315 在这种情况下,我建议您将TLS 视为安全网络协议。您还需要了解数字证书。不要掉以轻心,它们很复杂,需要全神贯注以确保您正确使用它们。毫无疑问,您可以在 C++ 和 Java 库中找到对 TLS 的所有必要支持。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多