在分发时保护你的代码
我们倡导开源免费
但是,如果一些用户希望分发自己的代码而不被看到内容/修改
以及希望限制插件应用的范围,我们同样提供相关的支持
两个保护方向
保护代码内容
防止被解密,读取,修改,抄袭
我们提供了 Lua 插件加密 的帮助插件来加密 lua 插件代码
请先检查 Lua 插件加密 是否打开
接着使用该功能 (默认命令为 enclua ) 并选择要被加密的 lua 代码
该功能随后将扫描 data 文件夹下的 所有可用的公钥文件
并使用加密此 lua 代码
加密后的 lua 代码使用方式和原 lua 代码完全相同,但只在安装了 上述公钥文件对应的私钥文件
的设备上才能正常使用
!!! ⚠️ 风险警告 ⚠️ !!! 任何 持有 上述公钥文件对应的私钥文件
的人都可以解密并读取您的代码
您必须 谨慎的确认
data 文件夹下的 所有可用的公钥文件
中 任一公钥文件
对应的 私钥文件
持有者 负责任的使用
其持有的 私钥文件
包括但不限于:不慎向其他人透露私钥文件
使用私钥文件窃取您的代码
例子:合理的运用方式
您的 data 文件夹下存在两个公钥文件:您的自用公钥
和 云裳的公钥
您小心的保管 您的私钥
不向任何人透露它,但是可以随意的把您的 公钥
给其他人
云裳的私钥在 240 手上,同时在 240 编写的云裳后台中,用户启动云裳面板的时候 私钥
被注入到面板程序的同时文件也被销毁以避免用户获得此密钥
你 相信
240 不会不负责任的使用云裳的私钥
并相信
编写的程序确实没有问题,私钥在被注入的同时文件已经被销毁所以用户无法获得此私钥
接着,你把此加密插件给了某一云裳用户,此用户因为没有云裳的私钥
所以无法解密你的插件或去剽窃其中的内容,但是他却可以在云裳的面板上使用此插件
因为私钥被注入到Omega当中并销毁其余副本,但 omega 不会向用户透露私钥
例子:一般使用场景
首先,你肯定是不希望别人看到你的代码,或者修改你的代码。
你希望的是别人在没法看到你写的代码的同时可以执行你的代码
我们接着 例子:合理的运用方式 讲
现在有一个云裳的用户,他不知道云裳的私钥,也不知道云裳的公钥
不过这不是问题,因为你有云裳的公钥
你把云裳的公钥
放到 data 文件夹下并加密
随后把这个文件给那个云裳的用户
那用户可以像使用普通 lua 文件一样在云裳的面板上执行你给他的加密 lua 代码
但是他并不能在其他非云裳面板上
执行或使用此代码,也不能在任何地方
看到你的真实代码或修改你的代码
至于其他用户?
他们无法在任何地方
执行你的代码、看到你的真实代码或修改你的代码
例子:危险的运用方式
您的 data 文件夹下存在两个公钥文件:您的自用公钥
、 云裳的公钥
、小黑的公钥
、泯灭帮的公钥
(假设泯灭帮也在卖面板)
以下任意事件发生都可能导致您的代码被剽窃
小黑没有保管好他的私钥
泄漏了,或者他就不是好人,使用他自己的私钥
解密了你的插件然后直接剽窃
泯灭帮的程序存在问题,导致其用户在使用他的面板时发现了被他们 不慎泄漏
的私钥
或者他们就不是好人,使用他们的私钥
解密了你的插件然后直接剽窃
加密方式
解释加密方式可以帮助有相关知识的人更好的理解其安全性
首先,一个对称密钥被生成,然后使用此对称密钥加密了插件代码 (AES 算法) (加密文件的第二行)
此时,保护的目标变成此对称密钥
对于每个 rsa 公钥,我们使用该 rsa 公钥加密此对称密钥,并记录在第 3、4、5 ... 行
限制插件可运行的地方
防止插件被倒卖和在未授权的服务器上运行或被未授权的用户使用
我们提供了一个 API,可以获得:
- 用户 Token 的 MD5
- 服务器号 MD5
coromega:print(coromega:user_info())
之所以使用 md5 是为了保护用户的真实信息被部分动机不良的插件恶意窃取或利用