XLua教程里面的第一步就是教大家如何去加载一个lua文件,官方推荐的做法是整个程序就一个DoString(“require ‘main’”),然后在main.lua加载其它脚本(类似lua脚本的命令行执行:lua main.lua)。
对于实际项目,一般都是使用assetBundle来作为lua文件的载体,这个方式使用的是自定义Loader方式,利用自定义Loader,可以实现代码签名以及加密。
为什么有签名还需要加密,签名和加密是两个不同的东西,签名可以防止文件传输的过程被黑客篡改。但是源代码还是暴露的,还是可以直接看,只不过如果对这个代码进行修改的话,加载的时候会不在执行。
lua的签名加载如下
SignatureLoader sl = new SignatureLoader(PUBLIC_KEY, LoadLuaFile);
LuaEnv.AddLoader(sl);
在对应的LoadLuaFile里可以直接加载assetbundle的textAsset文件,然后返回byte[]即可,既然有了byte[],我们就可以直接操作byte[]进而实现加密的效果。先在函数里加载textAsset,得到byte[],对byte[]进行解密,将解密后的byte[]返回。
lua签名使用自带的签名工具,在进行Assetbundle打包的时候进行
用Tools/KeyPairsGen