[發(fā)明專利]Python源代碼文件相似性檢測方法有效
| 申請?zhí)枺?/td> | 201510014906.3 | 申請日: | 2015-01-09 |
| 公開(公告)號: | CN104598231B | 公開(公告)日: | 2018-07-20 |
| 發(fā)明(設(shè)計)人: | 董付國;孫玲玲;原達(dá);馮磊 | 申請(專利權(quán))人: | 山東工商學(xué)院 |
| 主分類號: | G06F8/70 | 分類號: | G06F8/70 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 264005 山東*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | python 源代碼 文件 相似性 檢測 方法 | ||
本發(fā)明提供了一種Python源代碼文件相似性檢測方法,涉及計算機技術(shù)領(lǐng)域,可以準(zhǔn)確檢測出相同或相似的源代碼。所述方法包括:根據(jù)用戶輸入的不同的參數(shù)類型,采用不同的檢測方法進行檢測,在檢測時,讀取文件內(nèi)容并進行預(yù)處理,刪除多余的空格和換行符,然后根據(jù)指定的相似性標(biāo)準(zhǔn)對代碼進行比對,在比對時忽略注釋行,采用逐行迭加的方式消除代碼布局不同的影響。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種Python源代碼文件相似性檢測方法。
背景技術(shù)
目前,由于互聯(lián)網(wǎng)的快速發(fā)展和開源社區(qū)的普及,很多程序員已經(jīng)很少自己獨立完成編寫代碼的工作,更多的是從網(wǎng)上搜索并復(fù)制相關(guān)功能代碼,然后將大量代碼拼湊起來實現(xiàn)自己的功能,尤其對于非核心的外圍代碼更是如此。在軟件編程過程中,源代碼的復(fù)制和粘貼是非常頻繁的操作,尤其是設(shè)計不夠好的軟件開發(fā)中或者水平較低的程序員編寫代碼的過程中,代碼的低級復(fù)用較多,這種情況更為常見。借鑒優(yōu)秀的代碼固然能夠縮短開發(fā)周期,提高開發(fā)效率,但不幸的是,很多程序員并不對復(fù)制來的代碼進行安全性和功能性檢查,只要實現(xiàn)功能滿足當(dāng)前的需求即可。這樣會使得自己的軟件產(chǎn)品中可能存在無用功能代碼,這些無用功能可能會成為黑客攻擊的突破口。更重要的是,原始代碼被發(fā)現(xiàn)安全漏洞以后很難保證所有的使用者都能清楚地知道并對代碼做出正確的修改。如果有一天某塊代碼被發(fā)現(xiàn)存在bug,而該代碼塊又被復(fù)制過很多次,那么就需要檢查所有的相同代碼進行正確的修改,如果有漏掉的代碼塊,則存在一個潛在的漏掉而使得整個軟件不安全,即“木桶原則”。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種Python源代碼文件相似性檢測方法,可以準(zhǔn)確檢測出相同或相似的源代碼。
本發(fā)明實施例提供了一種Python源代碼文件相似性檢測方法,包括以下步驟:
一種Python源代碼文件相似性檢測方法,其特征在于,包括以下步驟:
S1、獲取用戶輸入的參數(shù)類型;
S2、若判斷出所述用戶輸入文件的參數(shù)類型為一個Python源文件,則應(yīng)用算法A檢測所述Python源文件內(nèi)代碼之間的相似性;
S3、若判斷出所述用戶輸入文件的參數(shù)類型為一個包含Python源文件的文件夾,則應(yīng)用算法B檢測所述文件夾中所有Python源文件之間的相似性;
S4、若判斷出所述用戶輸入文件的參數(shù)類型為一個目標(biāo)Python源文件和一個包含Python源文件的目標(biāo)文件夾,則應(yīng)用算法C檢測所述目標(biāo)Python源文件與所述目標(biāo)文件夾中所有Python源文件之間的相似性。
具體的算法A、B、C在具體實施例中進行說明。
本發(fā)明的有益效果:本申請?zhí)峁┑姆椒ǎ谶M行相似相檢測時先對讀取文件內(nèi)容并進行預(yù)處理,將內(nèi)容重新格式化,過濾干擾因素,然后根據(jù)指定的相似性標(biāo)準(zhǔn)對代碼進行比對,在比對時忽略注釋行,采用逐行迭加的方式消除代碼布局不同的影響,提高判斷精度,減少誤差。本發(fā)明支持Python源文件代碼的精確匹配和模糊匹配,支持兩種不同精度要求的代碼相似性檢測,支持不同布局代碼之間的相似性檢測。本發(fā)明稍加修改同樣適用于其他語言源代碼相似性檢測,并且可以根據(jù)需要增加其他相似性判斷標(biāo)準(zhǔn),具有很好的可擴展性。
附圖說明
圖1本發(fā)明實施例提供的一種Python源代碼文件相似性檢測方法的流程示意圖;
圖2本發(fā)明實施例提供的一種算法C的流程示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于山東工商學(xué)院,未經(jīng)山東工商學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510014906.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種基于Python語言的網(wǎng)格系統(tǒng)實現(xiàn)方法
- 一種基于模塊鉤子的Python字節(jié)碼文件保護方法
- 一種通過加密Python明文源碼token的知識產(chǎn)權(quán)保護系統(tǒng)
- 一種創(chuàng)建Python沙盒環(huán)境的方法及電子設(shè)備
- 圖形化Python編程交互方法、系統(tǒng)及電子設(shè)備
- 一種基于Ambari實現(xiàn)Python組件管理的方法
- 一種基于Java自動調(diào)用Python腳本的方法
- Python與Scratch交互式編程方法及電子設(shè)備
- 一種 Python 源碼安全防護的實現(xiàn)方法及系統(tǒng)
- 一種生成python項目結(jié)構(gòu)圖的方法、系統(tǒng)及介質(zhì)
- 基于異類關(guān)系確定目標(biāo)相似性的方法和系統(tǒng)
- 相似性匹配系統(tǒng)和方法
- 相似性匹配系統(tǒng)和方法
- 興趣點預(yù)測和推薦中的用戶時空相似性度量方法
- 一種基于相似性和邏輯矩陣分解的miRNA?疾病關(guān)聯(lián)關(guān)系預(yù)測方法
- 一種結(jié)合二分網(wǎng)絡(luò)和文本的醫(yī)院科室相似性分析方法
- 一種基于相似性學(xué)習(xí)及其增強的細(xì)胞類型鑒定方法
- 確定企業(yè)屬性相似性、重名對象判定
- 獲取機構(gòu)技術(shù)相似性的方法及裝置
- 一種基于圖卷積神經(jīng)網(wǎng)絡(luò)的lncRNA-蛋白質(zhì)相互作用預(yù)測方法





