请问怎么给Python或Java文件加密?

我现在的AI公司和另外一个公司有商业合作。对方希望我们把一个模块用Python或者Java做好,然后私有化部署到对方本地。

用最简单的语言说,这个模块本质上约等于读取一段文本、然后用AI模型处理一个字符串,

AI_sess = tf.Session(graph=tf.Graph(), config=config)
def process(dict_file, string):
    sess_yield = sess.run(string, ...)
    data = load(dict_file)
    result = data + sess_yield 
    return result 

出于保护我公司产权的原则,我能想到的就是用tensorflow/torch封成一个pkl/pb模型文件,这样就不会暴露代码给对方了。但是似乎这样只能封进去一些基本的运算和操作。

请问:有没有办法把Python或Java文件加密,然后再交给对方私有化部署呢?

阅读 3k
3 个回答

通过cpython编译成so文件是最简单的办法

1、假设你的源码文件或是a.py
2、新建一个setup.py文件

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(["a.py"]))

3、此时在你当前目下面会生成/build/lib.xxx-10.7-x86_64-2.7目录,从里面找到a.so拷贝到你原来a.py目录,这时你删除a.py,不影响你调用a.py里面的方法

先用Python源码生成二进制,然后在写一个Python调用接口。

Python不了解。
java:通过自定义ClassLoader可以实现对Java代码的加密,网上的资料页很多。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题