在实际情况中可能会遇到这样的事情,我们在分享自己编写的matlab程序时只是为了演示程序所实现的功能,并不希望对方看见源代码。要怎样才能实现既能加密源代码又能够在matlab中正常执行加密文件呢?今天就给大家介绍一个新的加密命令 —— pcode。
pcode命令通常有两种使用方式:
一、直接在命令窗口使用:
pcode + file1.m file2.m ....
注:各文件名之间用空格隔开,如果文件不在当前路径中,需要在文件名前添加文件路径。使用
pcode *.m
可以将当前目录下的所有m文件同时加密。
二、在m文件使用pcode函数
使用方式如下:
a、pcode(fun1,...,funN),加密fun1.m至funN.m文件
b、pcode(fun,'-inplace'),在脚本或函数文件所在的同一个文件夹中创建 P 文件
以下是在m文件中使用pcode函数示例:
% 指定主路径
pathT = 'D:\Documents\Matlab\test';
% 获取主路径子文件夹下的m文件名,*代码所有m文件
fun = fullfile(pathT,'aihaozhe','*.m');
% 调用加密函数pcode
pcode(fun);
特别说明,未使用参数时,pcode的生成的加密文件都是当前路径中。
以上就是m文件加密的介绍,原则上使用该方法加密是安全的,但网上有人可以破解pcode加密的文件,目前该破解渠道已经被mathworks官方阻止,而且高版本matlab加密强度应该较之前的老版本有很大提高,因此使用pcode加密还是相对可靠的。网上有一个叫tomlab的工具箱,能够破解纯计算型的pcode加密文件,因此建议大家若要对源代码进行加密,尽量在代码中添加诸如判断、循环等语句,这样就可以有效防止这个工具箱的破解。