Python代码隐藏或者加密,可以通过:
- 使用pyinstaller编译exe,发布可执行文件:大部分情况下适用,但某些包比如mayavi编译后无法运行
- py代码转c代码,使用cython编译为pyd文件:很多python的特殊功能,比如exec,修饰器编译后可能会遇到问题
- 修改python的源代码,加上代码解密功能,编译一个具有代码解密的python,如此一来所有代码都可以先按照一个key加密后发布:缺点是操作麻烦
一种推荐的方法是,将代码加密,然后将解密用的程序编译pyd文件,然后运行时解密,直接用exec运行,保证所有文件都在内存中。遇到exec不支持需要本项目文件import的可以运行时解密生成py文件,import完成过后及时删除生成的py文件(考虑import是将文件当成一个module,如果直接能够创建module的话就不用生成py文件了)如此,发布时只需要发布加密后的文件以及解密用pyd文件了。注意加密时,读取py文件,加密成字符串,然后用一个比如<FILE name=”XXX.py”>分割不同文件的加密后密文,便于解密时生成文件