国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Python程序模塊的安全調用方法和裝置的制造方法_2

      文檔序號:9810894閱讀:來源:國知局
      員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關的附圖。
      [0049]圖1示出了本發(fā)明實施例所提供的一種Python程序模塊的安全調用方法的流程圖;
      [0050]圖2示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用方法的流程圖;
      [0051]圖3示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用方法的流程圖;
      [0052]圖4示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用方法的流程圖;
      [0053]圖5示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用方法的流程圖;
      [0054]圖6示出了本發(fā)明實施例所提供的一種Python程序模塊的安全調用裝置的結構示意圖;
      [0055]圖7示出了本發(fā)明實施例所提供的一種Python程序模塊的安全調用裝置中第一獲取模塊的結構示意圖;
      [0056]圖8示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用裝置的結構示意圖;
      [0057]圖9示出了本發(fā)明實施例所提供的一種Python程序模塊的安全調用裝置中加密模塊的結構示意圖;
      [0058]圖10示出了本發(fā)明實施例所提供的另一種Python程序模塊的安全調用裝置的結構示意圖。
      【具體實施方式】
      [0059]下面將結合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0060]Python是一門編程語言,具有開發(fā)速度快,第三方擴展完善,代碼編寫量少等優(yōu)點,由于Python的上述優(yōu)點符合大數(shù)據(jù)分析平臺對開發(fā)效率要求,故Python成為眾多大數(shù)據(jù)分析平臺的開發(fā)指定語言之一。
      [0061]雖然Python擁有很多優(yōu)點,大大方便的了軟件的開發(fā),但如何保護Python代碼不被盜用卻一直是個無法解決的問題,因為Python的源代碼只能編譯,而不能加密,而Python代碼編譯出的二進制文件可以使用第三方軟件反編譯回源代碼,所以迫切需要為Python研究新的防盜措施,考慮到實際生產中只有一部分核心有很高的保護價值,所以只要加密一部分代碼即可滿足生產要求,故本發(fā)明實施例給出了一種將Python代碼部分加密的方案,即一種Python程序模塊的安全調用方法和裝置,能夠使得Python代碼編譯的程序模塊安全的被調用,解決了 Py thon程序模塊一直存在的被盜用的問題。
      [0062]參考圖1所示的本發(fā)明實施例提供的一種Python程序模塊的安全調用方法的流程圖,所述方法包括如下步驟:
      [0063]SlOl、獲取待加密的Python程序模塊;其中,所述Python程序模塊運行在安裝有Java運行環(huán)境和Jpype工具的運行環(huán)境中,所述Jpype工具包括加載器。
      [0064]本發(fā)明實施例中,待加密的Python程序模塊是編譯好的用于實現(xiàn)特定功能的Py thon代碼,該待加密的Py thon程序模塊可以被其他的程序模塊(S卩非加密Python程序模塊)進行調用(即對內調用),其是整個Python程序模塊中具有核心價值的部分,為了防止該部分被盜用,需要對其進行加密處理;而上述非加密Python程序模塊在Python程序模塊中的作用是用于對外調用的,即是對外公開的,故該部分程序模塊不需要進行加密處理。
      [0065]本發(fā)明實施例中首先要在整個Python程序模塊中獲取待加密的Py thon程序模塊,并對這部分待加密的Python程序模塊進行加密處理,防止其被盜用。
      [ΟΟ??]上述待加密的Python程序模塊的具體獲取過程如下:首先對Python程序模塊對應的代碼按照配置的要求進行劃分,對于整個Python程序模塊的所有程序模塊,若判斷為對內調用,則確定為待加密部分;若判斷為對外調用,則確定為非加密部分。
      [0067]S102、將所述待加密的Python程序模塊的Python代碼轉換為Jython代碼。
      [0068]具體的,由于Python代碼無法實現(xiàn)直接加密,本發(fā)明實施例中根據(jù)Python和Jython語法規(guī)則高度相似的特性,將待加密的Python程序模塊的Python代碼轉換為Jython代碼,以便后續(xù)對轉換得到Jython代碼進行加密處理。
      [0069]其中,Jython是Python在Java平臺的實現(xiàn),Jython的語法和Python的語法具有高度一 Sc ο
      [0070]S103、對所述Jython代碼進行加密處理,生成加密文件對應的解密密鑰。
      [0071 ] 本步驟中的加密處理即,將Jython代碼封裝打包為jar包函數(shù),jar包函數(shù)是Java運行平臺可以執(zhí)行的編譯后的二進制程序文件,可以做加密處理,故通過預設加密方法對上述jar包函數(shù)進行加密處理,生成jar包函數(shù)對應的解密密鑰。其中,上述預設加密方法可以為二進制加密方式,可以為對稱加密算法,也可以為非對稱加密算法
      [0072]另外,考慮到上述待加密的Python程序模塊也可以作為一個應用程序獨立運行,本發(fā)明實施例還可以將對待加密的Py thon程序模塊進行加密處理生成的jar包函數(shù)打包成大數(shù)據(jù)分析平臺下的應用程序,以便該加密后的Python程序模塊可以作為一個單獨的應用程序獨立運行,同時保證該應用程序的源代碼的安全性。
      [0073]S104、根據(jù)所述解密密鑰對所述Jpype工具的加載器進行配置,利用配置后的加載器調用所述加密文件,用以實現(xiàn)對Python程序模塊的安全調用。
      [0074]本發(fā)明實施例中,服務器上預先安裝有Java運行環(huán)境和Python的第三方擴展Jpype工具的運行環(huán)境,然后根據(jù)加密的jar包函數(shù)對應的解密密鑰對Jpype工具的加載器進行配置,使配置后的加載器能夠運行加密后的jar包函數(shù)(即讓Python有能力調用jar包中的函數(shù),用以實現(xiàn)非加密Python程序模塊可以通過Jpype工具的加載器調用加密處理后的jar包函數(shù),最終實現(xiàn)對Py thon程序模塊的安全調用。
      [0075]本發(fā)明實施例中,上述Jpype是Python第三方擴展,本發(fā)明實施例是利用Jython可以轉化為jar包,而jar包可以做加密處理的特性,將Jython作為轉化跳板,將一部分最有經(jīng)濟價值的Python程序代碼變成一個加密的jar包,讓剩下的python程序代碼通過Jpype調用這個jar包,最終實現(xiàn)保護部分python源代碼的目的。
      [0076]本發(fā)明實施例提供的一種Python程序模塊的安全調用方法,包括:獲取運行在安裝有Java運行環(huán)境和Jpype工具的運行環(huán)境中的待加密的Python程序模塊;將待加密的Python程序模塊的Python代碼轉換為Jython代碼;對Jython代碼進行加密處理,生成加密文件對應的解密密鑰;根據(jù)解密密鑰對Jpype工具的加載器進行配置,利用配置后的加載器調用加密文件,以實現(xiàn)對Python程序模塊的安全調用。與現(xiàn)有技術中的Python代碼存在的被盜用的問題相比,其能夠對Python程序模塊中的核心部分進行加密處理,并通過配置的Jpype工具調用加密后文件,以提高Python代碼的安全性,并且使得運行環(huán)境變化少、自動化程度高,并且可以跨平臺使用。
      [0077]如上所述,待加密的Python程序模塊的組成部分是編譯好的Python代碼,而實際上整個Python程序模塊只有一部分代碼是有價值的,這部分有價值的代碼需要加密(即對內調用的部分代碼),故本發(fā)明實施例中首先獲取該待加密的Python程序模塊,參考圖2,其具體方法如下:
      [0078]S201、獲取配置文件中的函數(shù)列表和類的列表。
      [0079]具體的,Python程序模塊包括多個函數(shù)列表和類的列表,首先獲取Python程序模塊中所有的函數(shù)列表和類的列表。
      [0080]S202、對所述函數(shù)列表和類的列表進行分析,確定待加密的類和待加密函數(shù)以及非加密的類和非加密函數(shù)。
      [0081]具體的,將對內調用的函數(shù)和類確定為待加密的類和待加密函數(shù);將對外調用的函數(shù)和類確定為非加密的類和非加密函數(shù)。
      [0082]S203、將所述待加密的類和待加密函數(shù)作為待加密的Python程序模塊。
      [0083]接著步驟202,確定了待加密的類和待加密函數(shù)之后,將其作為一個整體的待加密的Py thon程序模塊。
      [0084]為了進一步保證Python程序模塊中的待加密的Python程序模塊的安全性,本發(fā)明實施例中在上述步驟103之前,優(yōu)選的對待加密的Python程序模塊進行混淆處理,并且,在混淆處理時避開聯(lián)系非加密部分和待加密部分的函數(shù)和Python關鍵字,參考圖3,本發(fā)明實施例中的對待加密的Python程序模塊進行
      當前第2頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1