两个较方便的方案可以把python代码加密,一个是pyinstaller另一个是Nuitka
1.打包工具PyInstaller>3.2新加入一个加密参数--k,用户可自定义一个16位密钥,例:
python.exepyinstaller.py--k=xxxxxxxxxxxxxxxx--cleanxxx.py
关于这个功能,个人理解是加密后没有密钥第三方解不出pyc(pyo)文件,也就无从反编译,当执行exe文件时,打包工具将加密的字节码送入内存解密运行.
但是pyinstaller所用加密模块是开源
的PyCrypto
,理论上高手还是能想办法的,不过聊胜于无,就算是c程序只要花时间也能被反汇编,pyinstaller这个新参数可以加大破译难度,增加破解成本
详见官方文档
UsingPyInstaller
--keyThekeyusedtoencryptPythonbytecodeEncryptingPythonBytecode
2.关于Nuitka,是把python代码转成c++代码然后静态编译成二进制文件,比第一种方案稍麻烦一点,但据说可以提升执行速度
NuitkaHome|NuitkaHome