保护代码在分发时的安全性
我们倡导开源和免费,但如果某些用户希望在分发代码时防止其被查看或修改,并限制插件的应用范围,我们提供了相应的支持。
保护方向
保护代码内容
防止代码被解密、读取、修改和抄袭
我们提供了一个名为“Lua 插件加密”的帮助插件来加密 Lua 插件代码。请先确保“Lua 插件加密”功能已启用,然后使用该功能(默认命令为 enclua
)并选择要加密的 Lua 代码。该功能会扫描 data
文件夹下的所有公钥文件,并使用这些公钥加密 Lua 代码。
加密后的 Lua 代码使用方式与原代码相同,但只有在安装了对应私钥文件的设备上才能正常使用。
风险警告 ⚠️ 任何持有对应私钥文件的人都可以解密并读取您的代码。您必须谨慎确认 data
文件夹下所有公钥文件的私钥持有者负责地使用其私钥文件,避免私钥泄露或被滥用。
示例:合理的运用方式
假设您的 data
文件夹下存在两个公钥文件:您的自用公钥
和 云裳的公钥
。您小心保管您的私钥,不向任何人透露它,但可以随意将您的公钥提供给其他人。云裳的私钥在 240 手上,并在 240 编写的云裳后台中,用户启动云裳面板时,私钥被注入到面板程序中并销毁以避免用户获取密钥。
您信任 240 不会不负责任地使用云裳的私钥,并相信程序确实没有问题,私钥在注入后文件被销毁,用户无法获取私钥。随后,您将加密插件提供给某个云裳用户,该用户因为没有云裳的私钥无法解密或剽窃插件内容,但可以在云裳面板上使用插件。
示例:一般使用场景
假设您不希望别人看到或修改您的代码,而希望他们在无法查看代码的情况下执行代码。继续以上示例:
某个云裳用户不知道云裳的私钥或公钥,但这不是问题,因为您有云裳的公钥。您将云裳的公钥放入 data
文件夹中进行加密,然后将加密文件提供给该用户。该用户可以在云裳面板上执行加密 Lua 代码,但无法在其他地方执行或查看真实代码,也不能修改代码。
至于其他用户,他们无法在任何地方执行、查看或修改您的代码。
示例:危险的运用方式
假设您的 data
文件夹下存在多个公钥文件:您的自用公钥
、云裳的公钥
、小黑的公钥
、泯灭帮的公钥
。以下任意事件可能导致代码被剽窃:
- 小黑未妥善保管其私钥导致泄露,或小黑本身不可靠,使用私钥解密并剽窃您的插件。
- 泯灭帮的程序存在问题,导致用户发现被泄露的私钥,或泯灭帮本身不可靠,使用私钥解密并剽窃您的插件。
加密方式
解释加密方式有助于相关知识人员理解其安全性。首先,生成一个对称密钥,使用该密钥加密插件代码(使用 AES 算法,存储在加密文件第二行)。接着,使用每个 RSA 公钥加密对称密钥,并记录在加密文件的第三、四、五行等。
限制插件的运行范围
防止插件被倒卖或在未授权服务器上运行,或被未授权用户使用
我们提供了一个 API,可以获取:
- 用户 Token 的 MD5
- 服务器号的 MD5
coromega:print(coromega:user_info())
之所以使用 MD5,是为了保护用户的真实信息,防止其被恶意插件窃取或利用。