一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种源代码泄漏检测方法、系统及存储介质与流程

2022-12-19 23:02:01 来源:中国专利 TAG:


1.本发明涉及源代码防泄漏技术领域,特别涉及一种源代码泄漏检测方法、系统及存储介质。


背景技术:

2.如今,互联网产业迅猛发展,出现了许多以研发为主的技术型公司,很多的研发源代码都存储在员工的电脑上。这些源代码若被有意或无意的泄漏出去,将对公司造成经济、声誉上的损失。
3.为了对源代码的泄漏情况进行检测,以防止泄漏情况的进一步加剧,这些研发公司通常会对各网站上的源代码进行采集,并将采集到的源代码与本公司代码库中的源代码进行比对,通过分析二者的重复率来判断代码库中的源代码是否发生了泄漏。
4.但这样的检测方式存在以下几个问题:第一,抄袭者在抄袭过程中,为了使抄袭后的源代码有所不同,通常会在源代码中挑选几个简单的、可替换的字符串进行替换,或是直接在源代码中加上一些不会影响源代码正常运作的字符串,经过上述修改后,代码重复率分析结果会受到影响,导致代码泄漏检测结果准确性较低;第二,不同人为了实现相同功能而编写的代码,本身就存在相似度较高的可能,所以,即使不存在抄袭情况,也可能被识别为存在代码泄漏情况;第三,对源代码整体进行比对时,需要进行分析的数据量很大,导致分析效率较低;第四,仅用代码相似度较高作为证据进行权利维护时,维权会比较困难,没有更加确切的证据证明疑似侵权人或疑似侵权网站确实抄袭了本公司的源代码。
5.因此,亟需提供一种源代码泄漏检测方法,能够提升源代码泄漏检测的准确性以及源代码泄漏检测的效率,并为被侵权人的权利维护提供支撑依据。


技术实现要素:

6.本发明提供了一种源代码泄漏检测方法、系统及存储介质,能够提升源代码泄漏检测的准确性以及源代码泄漏检测的效率,并为被侵权人的权利维护提供支撑依据。
7.为了达到上述目的,本发明的基础方案如下:
8.一种源代码泄漏检测方法,包括以下步骤:
9.源代码获取步骤,获取待检测源代码;
10.标识识别步骤,识别所述待检测源代码中的防泄漏标识,并生成识别结果;
11.所述防泄漏标识包括,在源代码的标识符中按照预设编码规则插入的预设字符;
12.泄漏分析步骤,根据识别结果,生成代码泄漏分析结果。
13.本发明的原理及优点在于:
14.在源代码中加入防泄漏标识,所述防泄漏标识包括在源代码的标识符中按照预设编码规则插入的预设字符。由此,可以在需要对源代码的泄漏情况进行检测时,仅针对待检测源代码的标识符中是否含有按照预设编码规则插入的预设字符进行检测,相对于现有技术中直接将待检测源代码整体与代码库中的源代码进行比对而言,减少了检测量,提升了
检测效率,且即使抄袭人员对源代码的部分字符串进行了修改,由于代码总量大,刚好修改了插入预设字符的部分的概率较小,故对于检测结果的准确性影响也很小。
15.除此之外,为实现相同功能,不同人自撰的源代码可能存在重复率较高的情况,故此时的比对检测实际上无法保证准确性,可能存在误判的情况,且即使源代码已泄漏,待检测源代码与代码库中的源代码重复率较高,被侵权人也无法提供相应的证据证明待检测源代码抄袭了代码库中的源代码;而采用本方案,由于待检测源代码中含有我们预先插入的防泄漏标识,因此可以将其作为证据支撑后续的维权。
16.综上,采用本方案,能够提升源代码泄漏检测的准确性以及源代码泄漏检测的效率,并为被侵权人的权利维护提供支撑依据。
17.进一步,预设字符包括:若干个按序排列的预设字母;
18.预设编码规则包括:在标识符的单词中依次插入预设字符中的若干个预设字母。
19.有益效果:源代码中字母占比较大,在源代码的标识符中插入预设字母,不易被抄袭者发现及修改,从而有利于进行泄漏检测。除此之外,预设字母按序排列,并依次插入到预设字符中,由此达到了防泄漏标识的目的,在进行泄漏检测时,仅需识别待检测源代码中是否有该防伪标识,即可判断源代码是否存在泄漏情况,且可以将其作为维权依据。
20.进一步,预设编码规则还包括:
21.获取标识符的单词及需要插入至所述单词中的预设字母;
22.获取单词库;
23.根据标识符的单词、需要插入至所述单词中的预设字母及单词库,生成字母插入位置。
24.有益效果:每个单词都有与自身字母组成相近的词,例如,在一名词的末尾加上形容词后缀,即可变为与该名词整体字母组成相近的形容词,在名词末尾加上字母s,即可变为与该名词整体字母组成相近的复数形式。故本方案中,获取单词库,并根据标识符的单词、需要插入至所述单词中的预设字母及单词库,生成字母插入位置,从而可以使得插入字母后的单词不突兀,更加不易被发现及修改,有利于进行泄漏检测。
25.进一步,所述单词库包括若干个预存拆分词;
26.预设编码规则还包括:
27.获取单词的读音;
28.根据单词的读音,对单词进行拆分,生成音节拆分词;
29.根据音节拆分词、需要插入的预设字母及预存拆分词,生成字母插入位置。
30.有益效果:单词具有读音规则,根据单词的读音对单词进行拆分,再根据音节拆分词、需要插入的预设字母及预存拆分词,对拆分后的单词进行字母的添加,可以使得添加字母后的单词更加自然,不易发现。
31.进一步,预设编码规则还包括:
32.将预设字母插入至音节拆分词中,生成待识别词;
33.比对待识别词和预存拆分词,并生成单词比对结果;
34.根据单词比对结果,生成字母插入位置。
35.有益效果:将预设字母插入至音节拆分词中,生成待识别词,然后比对待识别词和预存拆分词,由此可以识别出待识别词是否与现有的预存拆分词相近,相似度越高,越不易
被抄袭者发现,故本方案中,根据待识别词和预存拆分词的单词比对结果,生成字母插入位置,从而得到更加适宜的字母插入位置。
36.进一步,还包括异常分析步骤,分析所述待检测源代码中各字母的占比,并生成异常分析结果;
37.所述泄漏分析步骤,根据异常分析结果,生成代码泄漏分析结果。
38.有益效果:在一篇代码中,尤其是实现特定功能或采用特定语言的一篇代码中,由于需要运用的字符串区别不大,故代码中某个字母的占比趋于恒定。本方案中,对待检测源代码中各字母的占比进行分析,从而可以分析出该待检测源代码中各字母的占比是否明显存在异常,例如预先插入的预设字符中包括多个字母a,而该待检测源代码中字母a的占比又明显偏高,即可说明该待检测源代码存在抄袭的可能,由此,有利于生成更加准确的代码泄漏分析结果。
39.进一步,所述异常分析步骤包括占比分析步骤、占比比对步骤和分析结果生成步骤;
40.所述占比分析步骤,分析所述待检测源代码中各字母的占比,并生成占比数据;
41.所述占比比对步骤,用于将所述占比数据与预设占比值进行比对,并生成占比比对结果;
42.所述分析结果生成步骤,根据所述占比比对结果,生成异常分析结果。
43.有益效果:将待检测源代码中各字母的占比与预设占比值进行比对,由此分析出该字母的占比是否存在异常,有利于进行后续的代码泄漏分析。
44.进一步,所述异常分析步骤还包括预设字母获取步骤;
45.所述预设字母获取步骤,获取预设字符中的预设字母;
46.所述分析结果生成步骤,根据占比比对结果,分析所述预设字母在待检测源代码中的占比数据是否高于预设占比值,若是,生成占比存在异常的异常分析结果。
47.有益效果:若预设字母包括a,而待检测源代码中字母a的占比明显偏高,则说明该待检测源代码存在抄袭的可能。故本方案中,分析预设字母在待检测源代码中的占比数据是否高于预设占比值,若是,则生成占比存在异常的异常分析结果。
48.一种源代码泄漏检测系统,使用了上述源代码泄漏检测方法。
49.有益效果:在源代码中加入防泄漏标识,所述防泄漏标识包括在源代码的标识符中按照预设编码规则插入的预设字符。由此,可以在需要对源代码的泄漏情况进行检测时,仅针对待检测源代码的标识符中是否含有按照预设编码规则插入的预设字符进行检测,相对于现有技术中直接将待检测源代码整体与代码库中的源代码进行比对而言,减少了检测量,提升了检测效率,且即使抄袭人员对源代码的部分字符串进行了修改,对于检测结果的准确性影响也很小。
50.除此之外,为实现相同功能,不同人自撰的源代码可能存在重复率较高的情况,故此时的比对检测实际上无法保证准确性,可能存在误判的情况,且即使源代码已泄漏,待检测源代码与代码库中的源代码重复率较高,被侵权人也无法提供相应的证据证明待检测源代码抄袭了代码库中的源代码;而采用本方案,由于待检测源代码中含有我们预先插入的防泄漏标识,因此可以将其作为证据支撑后续的维权。
51.综上,采用本方案,能够提升源代码泄漏检测的准确性以及源代码泄漏检测的效
率,并为被侵权人的权利维护提供支撑依据。
52.一种源代码泄漏检测存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现上述源代码泄漏检测方法。
53.有益效果:在源代码中加入防泄漏标识,所述防泄漏标识包括在源代码的标识符中按照预设编码规则插入的预设字符。由此,可以在需要对源代码的泄漏情况进行检测时,仅针对待检测源代码的标识符中是否含有按照预设编码规则插入的预设字符进行检测,相对于现有技术中直接将待检测源代码整体与代码库中的源代码进行比对而言,减少了检测量,提升了检测效率,且即使抄袭人员对源代码的部分字符串进行了修改,对于检测结果的准确性影响也很小。
54.除此之外,为实现相同功能,不同人自撰的源代码可能存在重复率较高的情况,故此时的比对检测实际上无法保证准确性,可能存在误判的情况,且即使源代码已泄漏,待检测源代码与代码库中的源代码重复率较高,被侵权人也无法提供相应的证据证明待检测源代码抄袭了代码库中的源代码;而采用本方案,由于待检测源代码中含有我们预先插入的防泄漏标识,因此可以将其作为证据支撑后续的维权。
55.综上,采用本方案,能够提升源代码泄漏检测的准确性以及源代码泄漏检测的效率,并为被侵权人的权利维护提供支撑依据。
附图说明
56.图1为本发明实施例一种源代码泄漏检测方法的流程框图。
具体实施方式
57.下面通过具体实施方式进一步详细说明:
58.实施例1:
59.实施例1基本如附图1所示:
60.一种源代码泄漏检测方法,包括以下步骤:
61.编写源代码时,在源代码中添加防泄漏标识。以便后续通过防泄漏标识,识别各网站提供的源代码是否抄袭了本公司的源代码。
62.防泄漏标识包括,在源代码的标识符中按照预设编码规则插入的预设字符。所述标识符包括变量名、方法名、类名和包名,可以在不同标识符中添加不同的防泄漏标识,以提升后续泄漏检测结果的准确性,本实施例中,以变量名进行举例说明。所述预设字符包括:若干个按序排列的预设字母,本实施例中,包括两个预设字母,具体为e和a。
63.预设编码规则具体如下:
64.在标识符的单词中依次插入预设字符中的若干个预设字母,本实施例中,在标识符的各单词中各插入一个预设字母,预设字母使用完毕后,循环插入预设字符中的预设字母,也即,在变量名的第一个单词中插入字母a,在变量名的第二个单词中插入字母e,在变量名的第三个单词中插入字母a,循环往复。在本技术的其他实施例中,还可以按照等差数列生成需要插入至标识符各单词中字母的数量,例如依次插入一个、三个、五个


65.获取标识符的单词及需要插入至所述单词中的预设字母。以变量名为cutreduce为例进行说明,由于预设字母为e和a,所以标识符的单词依次为cut和reduce,对应需要插
入的预设字母分别为e和a。
66.获取单词库,所述单词库中包括若干个预存拆分词;本实施例中,所述预存拆分词包括cut、cute、cust、re、rea、du、s、es。
67.获取单词的读音,并根据单词的读音,对单词进行拆分,生成音节拆分词;本实施例中采用bp神经网络算法模型,该模型包括输入层、隐层、输出层三层,将单词作为输入层的输入,输出层输出的是音节拆分词,通过该bp神经网络算法模型,将标识符的单词输入到输入层,即可得到该单词对应的音节拆分词。本实施例中,cut的音节拆分词为cut;reduce的音节拆分词为re、du、ce。
68.根据标识符的单词、需要插入至所述单词中的预设字母及单词库,生成字母插入位置。具体的,根据音节拆分词、需要插入的预设字母及预存拆分词,生成字母插入位置。本实施例中,首先,将预设字母插入至音节拆分词中,生成待识别词,具体将预设字母插入至音节拆分词的任一位置,在cut中插入e即可生成如下待识别词:ecut、ceut、cuet、cute;然后比对待识别词和预存拆分词,并生成单词比对结果;最后根据单词比对结果,生成字母插入位置,具体的,当任一待识别词和预存拆分词相同时,将该待识别词中预设字母的插入位置作为字母插入位置,也即cut的字母插入位置应当为第四位;当有多个待识别词与预存拆分词相同时,随机选择一个待识别词中预设字母的插入位置作为字母插入位置;当一单词包括多个音节拆分词时,将预设字母依次插入各音节拆分词的任一位置,若第一个音节拆分词与预设字母组合后生成的待识别词与预存拆分词均不相同,则继续将预设字母插入至第二个音节拆分词,直至最后一个音节拆分词,也即在reduce中插入a时,其字母插入位置应当为第三位。当所有音节拆分词插入预设字母后生成的待识别词均与预存拆分词不同时,将预设字母插入至该单词的最后一位。在本技术的其他实施例中,预设字母还包括s,需要将预设字母s插入至单词中时,直接插入至单词的最后一位。
69.由此,带有防泄漏标识的源代码就编写完毕了,接下来,可以利用本公司源代码编写过程中的上述编码规则,识别各网站的源代码是否为本公司泄漏的源代码。检测过程包括如下步骤:
70.源代码获取步骤,获取待检测源代码。本实施例中,获取各网站上提供的源代码。
71.异常分析步骤,分析所述待检测源代码中各字母的占比,并生成异常分析结果,所述异常分析步骤包括占比分析步骤、占比比对步骤、预设字母获取步骤和分析结果生成步骤。
72.所述占比分析步骤,分析所述待检测源代码中各字母的占比,并生成占比数据。
73.所述预设字母获取步骤,获取预设字符中的预设字母。
74.所述占比比对步骤,用于将所述占比数据与预设占比值进行比对,并生成占比比对结果;本实施例中,根据代码实现的功能以及采用的语言,预存有相应的预设占比值;首先,获取待检测源代码的功能及语言,然后获取对应的预设占比值,再将预设字母在待检测源代码中的占比数据与对应的预设占比值进行比对,并生成占比比对结果。
75.所述分析结果生成步骤,根据所述占比比对结果,生成异常分析结果。具体的,根据占比比对结果,分析所述预设字母在待检测源代码中的占比数据是否高于预设占比值,若是,生成占比存在异常的异常分析结果。
76.标识识别步骤,识别所述待检测源代码中的防泄漏标识,并生成识别结果。
77.泄漏分析步骤,根据异常分析结果和识别结果,生成代码泄漏分析结果。具体的,当所述异常分析结果显示字母的占比存在异常,且所述识别结果显示待检测源代码中包括防泄漏标识时,生成代码存在泄漏可能的分析结果;否则生成代码未泄漏的分析结果。
78.一种源代码泄漏检测系统,使用了上述源代码泄漏检测方法。
79.一种源代码泄漏检测存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现上述源代码泄漏检测方法。
80.以上的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本技术给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本技术的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献