[发明专利]代码相似性检测方法、装置以及存储介质有效
申请号: | 202110198641.2 | 申请日: | 2021-02-23 |
公开(公告)号: | CN112579155B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 高庆;李玫;张世琨;马森 | 申请(专利权)人: | 北京北大软件工程股份有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京华创智道知识产权代理事务所(普通合伙) 11888 | 代理人: | 彭随丽 |
地址: | 100080 北京市海淀区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 相似性 检测 方法 装置 以及 存储 介质 | ||
1.一种代码相似性检测方法,其特征在于,包括如下步骤:
S101:预处理阶段,对海量源代码文件进行预处理和特征提取工作,输出相似哈希指纹值;
S102:指纹索引阶段,根据所述预处理阶段的结果,采用分段索引策略将指纹切分并重组后存入相似哈希指纹库,建立分段索引便于快速匹配;
S103:相似匹配阶段,对待测工程文件进行处理后生成相似哈希值,根据所述待测工程文件的相似哈希值从所述相似哈希指纹库中分段检索出溯源检测的结果;
步骤S101中特征提取为:预先通过对多种常用语言的开源项目文件进行常用行统计,并以每种语言按频次排序的前N行作为常见行列表,N为预先设定的阈值,根据所述源代码文件的后缀名判断所属语言,从常见行列表中选取对应语言的常见行筛选器,并将所述源代码文件中包含在筛选器中的对应行全部筛除,剩下的每一行作为所述源代码文件的特征。
2.根据权利要求1所述的一种代码相似性检测方法,其特征在于,步骤S101包括如下子步骤:
S1011,代码预处理:所述源代码文件的代码中包括无关因素,所述无关因素包括空行、空格、注释,将代码进行统一的格式化处理,去除所述无关因素;
S1012,特征提取:预先通过对多种常用语言的开源项目文件进行常用行统计,并以每种语言按频次排序的前N行作为常见行列表,N为预先设定的阈值,根据所述源代码文件的后缀名判断所属语言,从常见行列表中选取对应语言的常见行筛选器,并将所述源代码文件中包含在筛选器中的对应行全部筛除,剩下的每一行作为所述源代码文件的特征;
S1013,散列处理:使用散列算法,将源代码文件的每一个特征计算出一个对应的散列值,所述散列值为64位的二进制数串;
S1014,加权求和:以每个特征出现的频次作为特征的权重进行加权求和,散列值每一位的0或者1决定了其与权重值是正相乘还是负相乘,将加权后的每一个散列值逐位相加即可得到结果序列串;
S1015,降维:对加权求和获得的结果序列串进行变换,对每一位若为正数则变换为1,否则变换为0,得到最终的相似哈希指纹值。
3.根据权利要求1所述的一种代码相似性检测方法,其特征在于,步骤S102中,将每个指纹分成5段,并通过排列组合将其重组作为索引分别记录在相似哈希指纹库的字段中。
4.根据权利要求1所述的一种代码相似性检测方法,其特征在于,步骤S103中,首先,与预处理阶段对应,对待测工程文件进行标准化、特征提取以及相似哈希指纹生成的操作;然后,与指纹索引阶段对应,将待查询的相似哈希指纹值分成5段,两两排列组合后得到10个索引片段,分别与数据库中其对应的字段中进行精确匹配,匹配上的文件即为可能与待测文件相似的文件;最后,对所有候选序列中的哈希值作进一步的海明距离计算,并汇总最终计算出来的结果。
5.一种基于相似哈希算法的代码相似性检测系统,其特征在于,包括如下模块:
预处理模块,用于对海量源代码文件进行预处理和特征提取工作,输出相似哈希指纹值;
指纹索引模块,用于根据所述预处理模块的结果,采用分段索引策略将指纹切分并重组后存入相似哈希指纹库,建立分段索引便于快速匹配;
相似匹配模块,用于对待测工程文件进行处理后生成相似哈希值,根据所述待测工程文件的相似哈希值从所述相似哈希指纹库中分段检索出溯源检测的结果;
预处理模块中特征提取工作为:预先通过对多种常用语言的开源项目文件进行常用行统计,并以每种语言按频次排序的前N行作为常见行列表,N为预先设定的阈值,根据所述源代码文件的后缀名判断所属语言,从常见行列表中选取对应语言的常见行筛选器,并将所述源代码文件中包含在筛选器中的对应行全部筛除,剩下的每一行作为所述源代码文件的特征。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北大软件工程股份有限公司,未经北京北大软件工程股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110198641.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种建筑墙体整平设备
- 下一篇:一种带有振动捡取功能的输送机