是一门脚本语言,运行时由虚拟机解释执行。当我们使用设计好算法给第三方使用时只能提供源码,任何运行我们算法的人都可以看到源码以及对应的算法思路。因此,需要一定手动保护源码。
最简单的保护方式是使用代码混淆,加大阅读难度。但这只是加大阅读难度,对方只要花点时间,还是可以理解算法思路。今天介绍使用将源码编译成库文件(平台为文件,平台为文件),用户拿到库文件后,无法反编译为源码,从而保证了代码安全性。另外,还能达到代码运行加速效果。关于更详细内容这里不过多介绍,本文主要介绍如何使用将编译为库文件使用。
最近看到一个巨牛的人工智能教程,分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。平时碎片时间可以当小说看,。
以识别为例,项目目录如下所示:
核心代码在根目录下,各个代码文件作用:
看看具体代码,其他文件无需过于关注,感兴趣的读者可以翻阅到本文末端获取完整代码。具体代码如下:
运行上面代码,输出结果如下:
在中,索引为的类别为,可以看到整体运行没有问题。
好了,有了上面的算法场景后,接下来我们对以上场景中的算法源码加密。
安装Cython
执行如下命令安装
安装c/c++编译环境
对于读者,只要有编译环境即可,这里不过多介绍。
对于读者,安装好最新的即可。没有安装的读者,可以前往下载。
本文是在平台,使用编译环境运行。
注意,实际的编译代码由实现,我们只是简单使用。主要是设置本地需要编译成(或)的python文件,无其他复杂内容, 读者可以直接拿去使用,注意修改代码根路径即可。创建文件内容如下:
注意第行代码定义了需要编译的代码根目录。执行上面代码后,会自动清理掉原始的源码,读者需要做好备份。如果读者想保留原始代码,将第行注释即可。具体执行以上代码命令为:
执行后,项目结构如下:
编译后的算法代码是二进制汇编代码,已经无法反编译:
原始的算法代码无需任何修改,继续执行文件:
输出如下:
可以看到输出内容一模一样
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3174.html