前言
平时我们可能经常遇到,一些项目交付要部署源代码,但是相对来说,尤其我们NLP方向,对于一些算法的保护就不那么强了。
这里介绍一下python 源码混淆工具——pyminfier
原理
将代码中的变量、函数、类、函数模板等更换为难以阅读的字符,但是保证解释器可读,类似_____b___
,ll1liil
,O0oo0ooO
等,这种方式并不安全,只是增加了破译的时间成本
除了混淆之外,编译是比较靠谱的做法,编译是将高级语言通过编译器/解释器转化成二进制文件,其可读性更差,但是对文件的保护程度也有限,一些反编译工具可以轻松地从二进制文件恢复出源代码
pyminifier
pip install pyminifier 安装
执行 pyminifier -O a.py > new.py 即可将a.py源码文件生成混淆后的代码new.py
注意:
这个混淆工具暂时只能对单个文件进行混淆,且混淆后不一定可用,需要对混淆结果进行测试,才能发布
使用Cython将python文件编译成so动态链接库
pip install Cython 安装
使用
test.py
class MyClass(object):
def __init__(self):
self.input_string = None
def set_value(self, input_string):
self.input_string = input_st