我有一个用 C++ 编写的程序(一个小游戏),它从 Lua 文件(它们基本上是程序的模块)获取配置。例如,程序从 Lua 文件中获取其名称、版本、允许和不允许执行的操作以及播放器可以执行的操作。问题是当我开始将这个小游戏分发给几个人时,他们可以配置我不想发生的 Lua 文件,所以我想过加密它们然后在程序启动时解密它们但我无法理解如何以何种方式真正做到这一点。总而言之,这是否像我想象的那样是一项相当简单的任务?
我的看法是这样的:用某个程序以某种加密方式对lua文件进行加密。将 C++ 代码写入程序,首先解密 Lua 文件,然后开始读取它们。这个概念正确吗?加密本身可以尽可能弱,只要它有效。
最佳答案
通过使用 luac,我终于能够使它全部正常工作。
我用这句话用 luac
编译它(在那里,tester.lua
是输出文件的名称,test.lua
是编译的文件):
luac -o tester.lua test.lua
无论编译与否,它都会自动运行。现在的问题是,任何人都可以将已编译的 lua 文件与一个未编译的版本放在一起,它仍然可以工作,因为 dofile 会同时读取普通的和已编译的 lua。你们有什么建议作为解决方案,以便 dofile 只读取已编译的 lua 文件而不是未编译的文件?
关于C++加密和解密Lua文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19839389/