一、背景及介绍。
ODOO开发中,难免有需要加密的时候,尤其是一些产品型的模块,如果是项目型的模块到无所谓,主要两个问题:
1、不加密如何给人试用。
2、项目做完在线运行了,别人赖账如何办。
3、不加密又如何低价分发,开源并不适合低价分发。
源力ODOO加密工具界面如图
核心原理是将python代码转换到c++代码,再将cpp编译成为whl包, whl包为dll或so文件,这样,用户拿到的最终模块为二进制文件,所以,有效的限制了代码的泄露
二、工具特点。
1、操作方便。选择目录加密即可。
2、灵活,每个文件都可以选择加密还是不加密。 大多数情况下,只要隐藏核心内容便可以了。加密过度反到是给人员协同带来一便。
三、使用步骤
1、选择源模块目录。
2、选择目标目录,也就是最终要生成到什么目录。
3、点击加密,程序会对模块进行加密,加密之后会生成两个模块,一个是加密后的ODOO模块,一个是whl包的项目
原如模块中的代码会被替换掉,如果不需要加密的文件也可以自行还原回去,这样便有足够的灵活性,如图
可以看到,最终去调用了库的代码,生成的cpp代码如图
模块生成以后,还需要编译成为whl包,所以进入whl项目目录,运行
python setup.py bdist_wheel
生成wheel 包, 注需需要安装pybind11, 通过命令pip install pybind11安装,最终生成的包
这个时个,只需要拷贝这个whl文件到客户机器进行安装就可以了。但是,由于操作系统不同,Python的版本不同,通过这种方式编译变得非常麻烦,所以,生成的项目支持通过ci进行编译,这样便可以生成不同平台,不同Python版本的的包,并且自动推送到Pypy,用户在使用的时候直接安装 pip install ylhc_reading_base就可以了, 这样对于用户来讲就基本无感,平台兼容超好。