System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于加解密,具体涉及一种应用于扩展程序的lua加解密方法。
技术介绍
1、在工业自动化领域,为了适应场景的多样化,上位机软件需要使用配置文件、脚本等方式来进行扩展。配置文件多适用于静态场景,脚本的功能更强大。常用的脚本有shell、python、lua脚本。其中,lua是明文代码,直接用记事本就可以打开,扩展涉及很多隐私参数,单纯地扩展应用会很不安全,用户可以随意地修改,造成隐患。一般有安全意识的厂商不会直接把lua源码脚本打包到程序中。常用的lua加密:1.luac加密,luac将脚本编译为字节码(bytecode)从而实现加密。程序在加载lua脚本时解密。2.luajit加密。在实际运维场景中,运维人员需要解密获取原始脚本来排查参数的正确性,以上方式加密后都无法便捷地解密获得原始脚本。同时,以上加密方式只是对脚本内容进行了加密,没有对文件名进行加密。很多时候文件名的名称与结构,也会暴露业务的逻辑结构。
技术实现思路
1、针对上述问题,本专利技术提出了一种技术方案:
2、应用于扩展程序的lua加解密方法,包括以下步骤:
3、修改主程序的库文件;
4、使用加解密程序的加密功能对明文的lua脚本及lua脚本文件名进行加密,得到加密文件;
5、将加密文件与修改后的主程序的库文件一起打包发给用户使用;
6、如需调试修改,使用加解密程序的解密功能对用户的加密文件进行解密,从而得到明文的lua脚本及lua脚本文件名,调试修
7、其中,修改主程序的库文件的具体内容为:
8、在主程序的库文件中,保存一个预设的对称式加密算法秘钥;
9、修改主程序的库文件中的函数:
10、将根据传入的lua脚本文件名,判断文件是否存在的过程,修改为:根据传入的lua脚本文件名,使用预设的对称式加密算法秘钥进行加密,从而得到真实的lua脚本文件名,使用真实的lua脚本文件名判断lua脚本文件是否存在;
11、将根据传入的lua脚本文件名,载入lua脚本内容的过程,修改为:对传入的lua脚本文件名使用预设的对称式加密算法秘钥进行加密,从而得到真实的lua脚本文件名;根据真实的lua脚本文件名,读取lua脚本文件后,使用预设的对称式加密算法秘钥进行解密,得到真实的lua脚本内容;
12、其中,加解密程序包括加密功能与解密功能,
13、加解密程序的加密功能具体内容为:使用预设的对称式加密算法秘钥对lua脚本内容及lua脚本文件名进行加密;
14、加解密程序的解密功能具体内容为:使用预设的对称式加密算法秘钥对lua脚本内容及lua脚本文件名进行解密。
15、优选的,加解密程序所需的对称式加密算法秘钥保存在加解密程序中或者从主程序的库文件中读取。
16、优选的,所述对称式加密算法为xxtea算法。
17、优选的,主程序为c++程序,修改的主程序的库文件中的函数为lual_loadfile函数与findfile函数。
18、有益效果:
19、1.本专利技术通过修改库文件的方式配合单独的加解密程序,对现有程序的lua扩展文件进行加密改造时,可以不修改原主程序的内容,改造成本低。
20、2.本专利技术中对lua脚本的文件名也进行加密,可以更好的隐藏业务逻辑。
21、3.本专利技术的加解密程序中的秘钥,从主程序的库文件中读取时,可以使得在各个用户的秘钥各不相同的情况下,加解密程序不用保存各个用户的秘钥,造成管理成本的增加。
本文档来自技高网...【技术保护点】
1.应用于扩展程序的Lua加解密方法,其特征在于包括以下步骤:
2.根据权利要求1所述的应用于扩展程序的Lua加解密方法,其特征在于加解密程序所需的对称式加密算法秘钥保存在加解密程序中或者从主程序的库文件中读取。
3.根据权利要求1所述的应用于扩展程序的Lua加解密方法,其特征在于所述对称式加密算法为xxtea算法。
4.根据权利要求1所述的应用于扩展程序的Lua加解密方法,其特征在于主程序为C++程序,修改的主程序的库文件中的函数为luaL_loadfile函数与findfile函数。
【技术特征摘要】
1.应用于扩展程序的lua加解密方法,其特征在于包括以下步骤:
2.根据权利要求1所述的应用于扩展程序的lua加解密方法,其特征在于加解密程序所需的对称式加密算法秘钥保存在加解密程序中或者从主程序的库文件中读取。
3.根据权利要求1所述的应...
【专利技术属性】
技术研发人员:许秋霞,徐大可,吴参林,王维,
申请(专利权)人:南京大全自动化科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。