[發明專利]一種基于指紋特征的開源組件識別方法及裝置有效
| 申請號: | 202111054962.1 | 申請日: | 2021-09-09 |
| 公開(公告)號: | CN113723100B | 公開(公告)日: | 2023-10-13 |
| 發明(設計)人: | 祁劍偉;張賓;劉明;馬占祥;馬大偉;靳曉雨;李志偉;李凱強 | 申請(專利權)人: | 國網數字科技控股有限公司;國網電商科技有限公司 |
| 主分類號: | G06F40/289 | 分類號: | G06F40/289;G06F18/22;G06F40/216;G06F21/57 |
| 代理公司: | 北京集智東方知識產權代理有限公司 11578 | 代理人: | 陳攀;陳亞斌 |
| 地址: | 100032 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 指紋 特征 組件 識別 方法 裝置 | ||
本申請提供了一種基于指紋特征的開源組件識別方法及裝置,該方法通過確定排列在前設定個數的目標源碼單詞和/或每個目標源碼單詞的出現頻率,得到第一源碼指紋特征和/或第二源碼指紋特征,及通過確定排列在前設定個數的目標項目單詞和/或每個目標項目單詞的出現頻率,得到第一項目指紋特征和/或第二項目指紋特征,基于第一源碼指紋特征和/或第二源碼指紋特征及第一項目指紋特征和/或第二項目指紋特征,確定源碼文件和項目文件的相似度,進而確定開源組件是否屬于項目程序引用的程序,完成對開源組件的識別,并保證開源組件識別的準確性。
技術領域
本申請涉及計算機技術領域,特別涉及一種基于指紋特征的開源組件識別方法及裝置。
背景技術
目前,在開源項目開發過程中,一般會引用第三方開源組件,其中,在一些場景中,需要識別開源項目中的第三方開源組件。
但是,如何識別開源項目中的第三方開源組件成為問題。
發明內容
為解決上述技術問題,本申請實施例提供一種基于指紋特征的開源組件識別方法及裝置,以達到保證開源組件識別的準確性的目的,技術方案如下:
一種基于指紋特征的開源組件識別方法,包括:
獲取開源組件,對所述開源組件中每個源碼文件進行分詞,得到多個源碼單詞;
從多個所述源碼單詞中,獲取排列在前設定個數的目標源碼單詞,和/或,確定每個所述目標源碼單詞的出現頻率,將所述目標源碼單詞作為第一源碼指紋特征,將所述目標源碼單詞的出現頻率作為第二源碼指紋特征;
獲取項目程序,對所述項目程序中每個項目文件進行分詞,得到多個項目單詞;
從多個所述項目單詞中,獲取排列在前所述設定個數的目標項目單詞,和/或,確定每個所述目標項目單詞的出現頻率,將所述目標項目單詞作為第一項目指紋特征,將所述目標項目單詞的出現頻率作為第二項目指紋特征;
基于所述第一源碼指紋特征和/或所述第二源碼指紋特征及所述第一項目指紋特征和/或所述第二項目指紋特征,確定所述源碼文件和所述項目文件的相似度;
若所述相似度達到設定閾值,則確定所述項目文件屬于所述開源組件;
在屬于所述開源組件的所述項目文件的個數達到設定文件個數閾值的情況下,確定所述開源組件為所述項目程序引用的組件。
可選的,所述從多個所述源碼單詞中,獲取排列在前設定個數的所述目標源碼單詞,包括:
去除多個所述源碼單詞中的冗余數據,從去除所述冗余數據后的源碼單詞中獲取排列在前設定個數的所述目標源碼單詞;
所述從多個所述項目單詞中,獲取排列在前所述設定個數的目標項目單詞,包括:
去除多個所述項目單詞中的冗余數據,從去除所述冗余數據后的項目單詞中獲取排列在前所述設定個數的目標項目單詞。
可選的,所述基于所述第一源碼指紋特征和/或所述第二源碼指紋特征與所述第一項目指紋特征和/或所述第二項目指紋特征,確定所述源碼文件和所述項目文件的相似度,包括:
確定每個所述第一源碼指紋特征,與每個所述第一項目指紋特征之間的第一匹配結果;
確定每個所述第二源碼指紋特征,與每個所述第二項目指紋特征之間的第二匹配結果;
和/或,
基于所述第一匹配結果和/或所述第二匹配結果,確定所述源碼文件和所述項目文件的相似度。
可選的,所述方法還包括:
基于所述項目程序的關鍵信息,在安全漏洞數據庫中查詢所述項目程序對應的安全漏洞。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國網數字科技控股有限公司;國網電商科技有限公司,未經國網數字科技控股有限公司;國網電商科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111054962.1/2.html,轉載請聲明來源鉆瓜專利網。





