前言
大家都清除,针对于MATLAB的脚本文件加密最多的就是转变为P文件,但是,即使转变位P文件,他只有使用权限,没有查看内容的权限,如何做到即查看不到内容也不能使用呢,这个时候就需要读取你的硬件信息,根据提前授权好的硬件信息,来决定是否可以使用该程序;
设计思路
第一步就是读取你的硬件信息
cmd = 'wmic cpu get processorid';
[~, result] = system(cmd);
fields = textscan( result, '%s', 'Delimiter', '\n' );
fields = strtrim(fields{1});
serialID = fields{2};
这里我选择一个读取CPU的硬件信息,这里边还有多种读取硬件信息的方式;例如:
% cmd = 'wmic baseboard get serialnumber';% 主板序列号
cmd = 'wmic diskdrive get serialnumber';% 硬盘序列号
% cmd = 'wmic cpu get processorid';% CPU序列号
% cmd = 'wmic bios get serialnumber';% BIOS序列号
% cmd = 'wmic nicconfig get macaddress';% 网卡序列号
引用地址为: Matlab 获取主板、硬盘、CPU、BIOS和网卡序列号_Lexis_007的博客-CSDN博客
第二部就是提前存储你授权的ID
txt={('BFEBFBFF010906A4'),('BFEBFBFF000906A4')};
上图就是我举了连个例子,作为一个单独的文件进行保存,后续如果需要添加多个授权,就可以直接修改这个文件
第三步:判断你的电脑是可以使用程序
for i=1:length(txt)
if(strcmp(char(serialID),char(txt(i))))
a=1 %要执行的函数
break
end
if(i==length(txt))
disp('您的机器未授权');
end
end
这里就是一个简单的对比,如果当前电脑作为提前存好的ID,那么a=1就作为输出源进行函数输出,如果查找所有提前存储好的ID中,没有匹配的ID,那么就会显示您的电脑没有授权;
总结:
这个算法虽然简单,但是实际用处确实很好,解决了不少P文件窃用问题,如果后续授权某个人的硬件机器,直接修改ID的库就可以了;
整理完的代码
执行代码
cmd = 'wmic cpu get processorid';
[~, result] = system(cmd);
fields = textscan( result, '%s', 'Delimiter', '\n' );
fields = strtrim(fields{1});
serialID = fields{2};
for i=1:length(txt)
if(strcmp(char(serialID),char(txt(i))))
a=1
break
end
if(i==length(txt))
disp('您的机器未授权');
end
end
库
txt={('BFEBFBFF010906A4'),('BFEBFBFF000906A5')};