[发明专利]基于simhash的源代码中开源成分筛选识别方法及系统在审
申请号: | 202210337119.2 | 申请日: | 2022-03-31 |
公开(公告)号: | CN114816518A | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 汪杰;万振华;王颉;李华;董燕 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F40/194;G06F16/903;G06F16/901;G06F21/57 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 赵贯杰 |
地址: | 518000 广东省深圳市龙华区民治*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 simhash 源代码 中开源 成分 筛选 识别 方法 系统 | ||
1.一种基于simhash的源代码中开源成分筛选识别方法,其特征在于,包括:
获取若干开源组件,以构建基础源码库,每一所述开源组件中包括若干开源文件;
采用simhash算法,分别对所述基础源码库中的每一所述开源文件中的源代码进行解析处理,以获得若干分别与相应所述开源文件相关的第一数码串,并按序将所述第一数码串均分为四段,以获得若干分别与相应所述开源文件相关的包括有四个字符串的第一数码组,并将若干所述第一数码组存储在数据库中,以得到数据匹配表;
采用与所述开源文件相同的解析处理方式对待测源码组件中的每一源码文件进行解析处理,以获得若干分别与相应所述源码文件相关的包括有四个字符串的第二数码组;
分别将所述第二数码组中的字符串与所述数据匹配表中每一所述第一数码组中的字符串整体匹配;
判断任一所述第一数码组中是否存在与当前所述第二数码组中相同的字符串,如果是,则将该第一数码组定义为待选数码组;
根据所述待选数码组在所述基础源码库中找出与该待测源码组件相关的若干开源组件。
2.根据权利要求1所述的基于simhash的源代码中开源成分筛选识别方法,其特征在于,还包括对所述待选数码组进行进一步筛选的方法:
分别判断任一所述待选数码组中其他三个字符串是否存在于当前所述第二数码组中,并根据判断结果计算所述待选数码组与所述第二数码组的汉明距离;
判断所述待选数码组与第二数码组的汉明距离是否小于或等于3,如果是,则将该待选数码组定义为目标数码组;
根据所述目标数码组在所述基础源码库中找出与该待测源码组件相关的若干开源组件。
3.根据权利要求2所述的基于simhash的源代码中开源成分筛选识别方法,其特征在于,根据所述目标数码组在所述基础源码库中找出与该待测源码组件相关的若干开源组件的方法包括:
在所述基础源码库中生成一关联表,所述关联表记录有与每一所述第一数码组相关联的开源文件名、与该开源文件所对应的开源组件名、该开源组件的版本号、以及该开源组件存储位置;
根据所述关联表,查找所有与所述目标数码组对应的开源文件、开源组件以及存储位置;
统计查找出的每一所述开源组件所对应的源码文件的数量,并根据统计数量计算每一所述开源组件与待测源码组件的相似度;
根据相似度由高到低的顺序,取前N个所述开源组件作为进一步比对分析的对象。
4.根据权利要求1所述的基于simhash的源代码中开源成分筛选识别方法,其特征在于,还包括在所述基础源码库中对所述开源文件的存储方法:
采用minhash算法,对任一所述开源文件整体执行哈希计算,以得到与该开源文件相对应的特征哈希码,并以该特征哈希码命名该开源文件;
将所述特征哈希码进行分段,以得到哈希数码段,根据该哈希数码段建立多级存储目录,具有相同哈希数码段的开源文件存储在同一级的存储目录下。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210337119.2/1.html,转载请声明来源钻瓜专利网。