我正在开发一种加密游戏数据文件的方法,该方法将在我正在创建的游戏引擎中使用。游戏数据文件将使用私钥加密,并在加载到游戏引擎后解密。
私钥将在引擎中手动设置(作为 const),以便将其编译到引擎中。然而,诀窍是在其中混淆它,以便普通的 Joe Bloggs 不能(容易地)通过反汇编和逆向工程代码找到密钥。
struct Example {
u_int8_t random1;
u_int64_t segment31;
u_int8_t random2;
u_int8_t random3;
u_int64_t segment3;
u_int64_t segment14;
// Etc
};
我的想法是将密钥存储在与随机生成的字节混在一起的段中。我的问题是这样的:
有没有办法在 C++ 宏中随机生成一个数字?该数字必须在编译时随机生成(或每个随机值设置为随机用户选择的值),因此任何运行时函数都不好。
如果有更好的方法,我愿意接受任何建议,但我绝对希望使用私钥/公钥对加密游戏数据文件,并且公钥尽可能保持私密。