工作中由于需要防止源代泄漏,需要将源代码隐藏,找到两种方法:
1.使用python生成的pyc文件。
这种方法的优点就是pyc文件生成很容易,缺点则是很容易通过工具得到源码,并且python版本不一致也会报 bad magic error。
bad magic error解决方法:删除pyc,用相同版本的python重新生成,参考stackoverflow。
python生成pyc文件:
python -m py_compile python_file.py
另一种生成pyc的方法:
在python解释器中运行:
2.使用pyinstaller生成可执行文件。
这种方法生成的文件相对与pyc文件更难获取到源码,并且可以通过--key进行加密,在对方无法获取key的情况下,破解难度大大增加,但是由于key容易被获取,所以这种方法也容易被逆向,具体看这里。
使用方法:
pyinstaller -F python_file.py # -F表示生成一个文件
运行上述命令后会再python_file.py所在目录生成dist目录,可执行文件在dist文件中,文件名称和python_file.py相同,只是没有后缀.py
运行可执行文件的方法:
cd dist # change directory to dist, which is the folder generated by pyinstaller
./python_file # 如果有参数,可以继续添加
当然,由于python的特性,基本上不可能实现反逆向,上述以及下面链接中的方法,也只能在一定程度上防止别人看到源码而已。
更多方法看stackoverflow以及freezing your code.
ref:
https://stackoverflow.com/questions/39559677/pyinstaller-encryption-key
https://www.zhihu.com/question/30296617