TWI748590B - 軟體程式驗證方法、電子裝置及存儲介質 - Google Patents
軟體程式驗證方法、電子裝置及存儲介質 Download PDFInfo
- Publication number
- TWI748590B TWI748590B TW109126407A TW109126407A TWI748590B TW I748590 B TWI748590 B TW I748590B TW 109126407 A TW109126407 A TW 109126407A TW 109126407 A TW109126407 A TW 109126407A TW I748590 B TWI748590 B TW I748590B
- Authority
- TW
- Taiwan
- Prior art keywords
- software program
- hash value
- verification
- code
- program
- Prior art date
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一種軟體程式驗證方法,包括獲取第一軟體程式的第一識別碼及第一雜湊值;對第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼;將第一識別碼、第一雜湊值及第一驗證碼寫入區塊鏈;獲取待驗證的第二軟體程式的第二識別碼並計算第二軟體程式的第二雜湊值;判斷第二雜湊值是否與第一雜湊值相同;當第二雜湊值與第一雜湊值相同時,對第二識別碼及第二雜湊值進行加密運算以生成第二驗證碼;判斷第二驗證碼是否與第一驗證碼相同;及當第二驗證碼與第一驗證碼相同時,確定第二軟體程式為正版程式。本發明還提供一種電子裝置及存儲介質。
Description
本發明涉及軟體程式管理技術領域,尤其涉及一種軟體程式驗證方法、電子裝置及存儲介質。
區塊鏈作為一種共用資料庫,具有去中心化、不可偽造、可以追溯等特徵,適合用來記錄重要資訊。基於此,許多公司將開發出來的軟體程式的關鍵資訊,例如裝置唯一識別碼、雜湊值等記錄在區塊鏈上,用來驗證市面上提供的軟體程式是否為正版。然而,盜版人員可以藉由正版的軟體程式獲得雜湊值,並利用偽造的裝置唯一識別碼將盜版軟體程式的資訊寫入區塊鏈,使得盜版軟體程式也能通過驗證並使用,從而給軟體程式開發公司造成巨大損失。
有鑒於此,有必要提供一種軟體程式驗證方法、電子裝置及存儲介質,藉由裝置唯一識別碼、雜湊值及驗證碼以驗證軟體程式是否為正版程式。
本發明的第一方面提供一種軟體程式驗證方法,包括:獲取一第一軟體程式的第一識別碼及第一雜湊值;對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼;
將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈;獲取待驗證的一第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值;判斷所述第二軟體程式的第二雜湊值是否與所述第一雜湊值相同;當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值相同時,對所述第二識別碼及第二雜湊值進行所述加密運算以生成第二驗證碼;判斷所述第二驗證碼是否與所述第一驗證碼相同;及當判定所述第二驗證碼與所述第一驗證碼相同時,確定所述第二軟體程式為正版程式。
優選地,所述方法還包括:當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值不同,或判定所述第二驗證碼與所述第一驗證碼不同時,確定所述第二軟體程式不是正版程式。
優選地,所述方法還包括:當確定所述第二軟體程式不是正版程式時,發送報警資訊至所述第一軟體程式的開發商。
優選地,所述對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼包括:對所述第一識別碼及第一雜湊值進行異或運算以生成所述第一驗證碼。
優選地,所述對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼包括:
將所述第一識別碼及第一雜湊值相加後取最後16比特的數值以生成所述第一驗證碼。
優選地,所述方法還包括:將所述加密運算封裝為二維碼演算法;及對所述第一識別碼及第一雜湊值執行所述二維碼演算法以生成所述第一驗證碼。
優選地,所述將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈包括:計算所述驗證資訊的交易雜湊值;及將所述驗證資訊及所述交易哈希值打包為交易記錄,並根據智慧合約寫入所述區塊鏈。
優選地,所述方法還包括:當用戶藉由終端設備下載所述第二軟體程式,並確定所述第二軟體程式為正版程式時,發送下載指令至所述終端設備,以允許所述第二軟體程式下載至所述終端設備。
本發明的第二方面提供一種電子裝置,所述電子裝置包括:處理器;以及記憶體,所述記憶體中存儲有多個程式模組,所述多個程式模組由所述處理器載入並執行上述的軟體程式驗證方法。
本發明的第三方面提供一種電腦可讀的存儲介質,其上存儲有至少一條電腦指令,所述指令由處理器載入並執行上述的軟體程式驗證方法。
上述軟體程式驗證方法、電子裝置及存儲介質藉由裝置唯一識別碼、雜湊值及驗證碼以驗證軟體程式是否為正版程式,所述驗證碼可以建立區
塊鏈中軟體程式的裝置唯一識別碼和雜湊值之間的關聯,提高了軟體程式的破解難度以及驗證準確性。
1:電子裝置
10:處理器
100:軟體程式驗證系統
101:獲取模組
102:生成模組
103:記錄模組
104:判斷模組
105:確定模組
106:發送模組
107:下載模組
20:記憶體
30:電腦程式
2:終端設備
S401-S411:步驟
圖1是本發明較佳實施方式提供的軟體程式驗證方法的應用環境架構示意圖。
圖2是本發明較佳實施方式提供的電子裝置的結構示意圖。
圖3是本發明較佳實施方式提供的軟體程式驗證系統的結構示意圖。
圖4是本發明較佳實施方式提供的軟體程式驗證方法的流程圖。
為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施例對本發明進行詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。
在下面的描述中闡述了很多具體細節以便於充分理解本發明,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
除非另有定義,本文所使用的所有的技術和科學術語與屬於本發明的技術領域的技術人員通常理解的含義相同。本文中在本發明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在於限制本發明。
請參閱圖1所示,為本發明較佳實施方式提供的軟體程式驗證方法的應用環境架構示意圖。
本發明中的軟體程式驗證方法應用在電子裝置1中,所述電子裝置1與至少一個終端設備2藉由網路建立通信連接。所述網路可以是有線網路,也可以是無線網路,例如無線電、無線保真(Wireless Fidelity,WIFI)、蜂窩、衛星、廣播等。
所述電子裝置1可以為安裝有軟體程式驗證程式的電子設備,例如個人電腦、伺服器等,其中,所述伺服器可以是單一的伺服器、伺服器集群或雲端伺服器等。
所述終端設備2可以是智慧手機或個人電腦等。
請參閱圖2所示,為本發明電子裝置較佳實施方式的結構示意圖。
所述電子裝置1包括,但不僅限於,處理器10、記憶體20以及存儲在所述記憶體20中並可在所述處理器10上運行的電腦程式30,例如軟體程式驗證程式。所述處理器10執行所述電腦程式30時實現軟體程式驗證方法中的步驟,例如圖4所示的步驟S401~S411。或者,所述處理器10執行所述電腦程式30時實現軟體程式驗證系統中各模組/單元的功能,例如圖3中的模組101-107。
示例性的,所述電腦程式30可以被分割成一個或多個模組/單元,所述一個或者多個模組/單元被存儲在所述記憶體20中,並由所述處理器10執行,以完成本發明。所述一個或多個模組/單元可以是能夠完成特定功能的一系列電腦程式指令段,所述指令段用於描述所述電腦程式30在所述電子裝置1中的執行過程。例如,所述電腦程式30可以被分割成圖3中的獲取模組101、生成模組102、記錄模組103、判斷模組104、確定模組105、發送模組106及下載模組107。各模組具體功能參見軟體程式驗證系統實施例中各模組的功能。
本領域技術人員可以理解,所述示意圖僅僅是電子裝置1的示例,並不構成對電子裝置1的限定,可以包括比圖示更多或更少的部件,或者組
合某些部件,或者不同的部件,例如所述電子裝置1還可以包括輸入輸出設備、網路接入設備、匯流排等。
所稱處理器10可以是中央處理單元(Central Processing Unit,CPU),還可以是其他通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者所述處理器10也可以是任何常規的處理器等,所述處理器10是所述電子裝置1的控制中心,利用各種介面和線路連接整個電子裝置1的各個部分。
所述記憶體20可用於存儲所述電腦程式30和/或模組/單元,所述處理器10藉由運行或執行存儲在所述記憶體20內的電腦程式和/或模組/單元,以及調用存儲在記憶體20內的資料,實現所述電子裝置1的各種功能。所述記憶體20可主要包括存儲程式區和存儲資料區,其中,存儲程式區可存儲作業系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;存儲資料區可存儲根據電子裝置1的使用所創建的資料(比如音訊資料、電話本等)等。此外,記憶體20可以包括高速隨機存取記憶體,還可以包括非易失性記憶體,例如硬碟、記憶體、插接式硬碟,智慧存儲卡(Smart Media Card,SMC),安全數位(Secure Digital,SD)卡,快閃記憶體卡(Flash Card)、至少一個磁碟記憶體件、快閃記憶體器件、或其他易失性固態記憶體件。
請參閱圖3所示,本發明軟體程式驗證系統較佳實施方式的功能模組圖。
在一些實施方式中,軟體程式驗證系統100運行於所述電子裝置1中。所述軟體程式驗證系統100可以包括多個由程式碼段所組成的功能模組。所
述軟體程式驗證系統100中的各個程式段的程式碼可以存儲於電子裝置1的記憶體20中,並由所述至少一個處理器10所執行,以實現軟體程式驗證功能。
本實施方式中,軟體程式驗證系統100根據其所執行的功能,可以被劃分為多個功能模組。參閱圖3所示,所述功能模組可以包括獲取模組101、生成模組102、記錄模組103、判斷模組104、確定模組105、發送模組106及下載模組107。本發明所稱的模組是指一種能夠被至少一個處理器所執行並且能夠完成固定功能的一系列電腦程式段,其存儲在記憶體20中。可以理解的是,在其他實施例中,上述模組也可為固化於所述處理器10中的程式指令或固件(firmware)。
所述獲取模組101用於獲取一第一軟體程式的第一識別碼及第一雜湊值。
在本實施方式中,所述第一軟體程式為開發商開發完成的軟體產品。所述第一識別碼為所述第一軟體程式對應的裝置唯一識別碼,所述第一雜湊值由所述第一軟體程式的程式檔藉由雜湊演算法計算得到。其中,所述雜湊演算法可以是直接定址法、數位分析法、平方取中法、折疊法或亂數法。所述第一識別碼及所述第一雜湊值均為十六進位數。
所述生成模組102用於對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼。
在本實施方式中,所述加密運算為異或運算,所述生成模組102對所述第一識別碼及第一雜湊值執行所述異或運算以生成所述第一驗證碼。例如,所述第一識別碼ID1為0x123456,所述第一雜湊值Hash1為0x0d0d0d,所述異或運算函數為xor,則所述第一驗證碼CK1=(ID1)xor(Hash1)=0x1f395b。
在其他實施方式中,所述加密運算為兩數值相加後取最後16比特的數值,即,所述生成模組102將所述第一識別碼及第一雜湊值相加後取最後16
比特的數值以生成所述第一驗證碼。例如,所述第一識別碼ID1為0x123456,所述第一雜湊值Hash1為0x0d0d0d,則所述第一驗證碼CK1=[(ID1)+(Hash1)]&0xffff=0x4163。
在本實施方式中,所述生成模組102還將所述加密運算封裝為二維碼演算法,對所述第一識別碼及第一雜湊值執行所述二維碼演算法以生成所述第一驗證碼,從而建立所述第一軟體程式的識別碼與雜湊值的關聯,以提高驗證碼的破解難度,進而提高所述第一軟體程式的破解難度。其中,所述第一驗證碼為二維碼。
所述記錄模組103用於將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈。
在本實施方式中,所述記錄模組103計算所述驗證資訊的交易雜湊值,即,對所述第一識別碼、第一雜湊值及第一驗證碼重新執行雜湊演算法以計算得到所述交易雜湊值。所述記錄模組103還將所述驗證資訊及所述交易雜湊值打包為交易記錄,並根據智慧合約寫入所述區塊鏈。其中,所述驗證資訊所在區塊包括上一區塊的交易雜湊值及所述交易記錄。
所述獲取模組101還用於獲取待驗證的第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值。
在本實施方式中,當用戶藉由所述終端設備2下載第二軟體程式時,所述獲取模組101確定所述第二軟體程式待驗證,並獲取所述第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值。在本實施方式中,所述用戶待下載的第二軟體程式由所述開發商以外的人員發佈在網路上,其名稱及功能與所述開發商開發的所述第一軟體程式相同。
當所述終端設備2請求下載所述第二軟體程式時,首先讀取所述第二軟體程式的名稱,當所述第二軟體程式的名稱與所述第一軟體程式的名稱
相同時,所述終端設備2發送請求驗證指令至所述電子裝置1。當所述電子裝置1接收到所述請求驗證指令時,所述獲取模組101藉由所述終端設備2或存儲所述第二軟體程式的伺服器獲得所述第二軟體程式的程式檔。
在本實施方式中,所述第二軟體程式的第二識別碼與所述第一識別碼相同。所述獲取模組101根據計算所述第一雜湊值時的雜湊演算法及獲取的所述第二軟體程式的程式檔計算所述第二軟體程式的第二雜湊值。
所述判斷模組104用於判斷所述第二軟體程式的第二雜湊值是否與所述第一雜湊值相同。
在本實施方式中,所述判斷模組104根據區塊鏈網路從所述區塊鏈獲取與所述第二識別碼相同的第一識別碼對應的交易記錄。其中,所述交易記錄包含所述第一識別碼、第一雜湊值及第一驗證碼。所述判斷模組104進一步判斷所述第二雜湊值是否與所述第一雜湊值相同。
所述生成模組102還當所述判斷模組104判定所述第二軟體程式的第二雜湊值與所述第一雜湊值相同時,對所述第二識別碼及第二雜湊值執行所述加密運算以生成第二驗證碼。需要說明的是,生成所述第二驗證碼的加密運算與生成第一驗證碼的加密運算相同。其中,所述第二驗證碼為二維碼。
所述判斷模組104還判斷所述第二驗證碼是否與所述第一驗證碼相同。
所述確定模組105用於當所述判斷模組104判定所述第二驗證碼與所述第一驗證碼相同時,確定所述第二軟體程式為正版程式。
所述確定模組105還用於當所述判斷模組104判定所述第二軟體程式的第二雜湊值與所述第一雜湊值不同,或判定所述第二驗證碼與所述第一驗證碼不同時,確定所述第二軟體程式不是正版程式。
所述發送模組106用於當所述確定模組105確定所述第二軟體程式不是正版程式時,發送報警資訊至所述第一軟體程式的開發商。
在本實施方式中,所述發送模組106藉由郵件的方式將所述報警資訊發送至所述開發商的指定人員的郵箱。其中,所述報警資訊至少包括所述第二軟體程式所在的網路位址、發佈人資訊及確定所述第二軟體程式不是正版程式的文字資訊。在其他實施方式中,所述發送模組106也可以藉由撥打電話的方式將所述報警資訊通知給所述開發商的指定人員。
所述下載模組107用於當所述確定模組105確定所述第二軟體程式為正版程式時,發送下載指令至所述終端設備2,以允許所述第二軟體程式下載至所述終端設備2。
請參閱圖4所示,是本發明提供的軟體程式驗證方法的流程圖。根據不同的需求,所述流程圖中步驟的順序可以改變,某些步驟可以省略。
步驟S401,獲取一第一軟體程式的第一識別碼及第一雜湊值。
在本實施方式中,所述第一軟體程式為開發商開發完成的軟體產品。所述第一識別碼為所述第一軟體程式對應的裝置唯一識別碼,所述第一雜湊值由所述第一軟體程式的程式檔藉由雜湊演算法計算得到。其中,所述雜湊演算法可以是直接定址法、數位分析法、平方取中法、折疊法或亂數法。所述第一識別碼及所述第一雜湊值均為十六進位數。
步驟S402,對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼。
在本實施方式中,所述加密運算為異或運算。所述步驟S402具體包括對所述第一識別碼及第一雜湊值執行所述異或運算以生成所述第一驗證碼。例如,所述第一識別碼ID1為0x123456,所述第一雜湊值Hash1為0x0d0d0d,所述異或運算函數為xor,則所述第一驗證碼CK1=(ID1)xor(Hash1)=0x1f395b。
在其他實施方式中,所述加密運算為兩數值相加後取最後16比特的數值,即,所述步驟S402包括將所述第一識別碼及第一雜湊值相加後取最後16比特的數值以生成所述第一驗證碼。例如,所述第一識別碼ID1為0x123456,所述第一雜湊值Hash1為0x0d0d0d,則所述第一驗證碼CK1=[(ID1)+(Hash1)]&0xffff=0x4163。
在本實施方式中,所述步驟S402包括還包括將所述加密運算封裝為二維碼演算法,對所述第一識別碼及第一雜湊值執行所述二維碼演算法以生成所述第一驗證碼,從而建立所述第一軟體程式的識別碼與雜湊值的關聯,以提高驗證碼的破解難度,進而提高所述第一軟體程式的破解難度。其中,所述第一驗證碼為二維碼。
步驟S403,將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈。
在本實施方式中,所述步驟S403具體包括計算所述驗證資訊的交易雜湊值,即,對所述第一識別碼、第一雜湊值及第一驗證碼重新執行雜湊演算法以計算得到所述交易雜湊值。所述步驟S403還包括將所述驗證資訊打包為交易記錄,並根據智慧合約寫入所述區塊鏈。其中,所述驗證資訊所在區塊包括上一區塊的交易雜湊值、計算得到的交易雜湊值及所述交易記錄。
步驟S404,獲取待驗證的第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值。
在本實施方式中,當用戶藉由所述終端設備2下載第二軟體程式時,所述獲取模組101確定所述第二軟體程式待驗證,並獲取所述第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值。在本實施方式中,所述用戶待下載的第二軟體程式由所述開發商以外的人員發佈在網路上,其名稱及功能與所述開發商開發的所述第一軟體程式相同。
當所述終端設備2請求下載所述第二軟體程式時,首先讀取所述第二軟體程式的名稱,當所述第二軟體程式的名稱與所述第一軟體程式的名稱相同時,所述終端設備2發送請求驗證指令至所述電子裝置1。當所述電子裝置1接收到所述請求驗證指令時,藉由所述終端設備2或存儲所述第二軟體程式的伺服器獲得所述第二軟體程式的程式檔。
在本實施方式中,所述第二軟體程式的第二識別碼與所述第一識別碼相同,根據計算所述第一雜湊值時的雜湊演算法及獲取的所述第二軟體程式的程式檔計算所述第二軟體程式的第二雜湊值。
步驟S405,判斷所述第二軟體程式的第二雜湊值是否與所述第一雜湊值相同。當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值相同時,所述流程進入步驟S406。當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值不同時,所述流程進入步驟S409。
在本實施方式中,所述步驟S405具體包括根據區塊鏈網路從所述區塊鏈獲取與所述第二識別碼相同的第一識別碼對應的交易記錄。其中,所述交易記錄包含所述第一識別碼、第一雜湊值及第一驗證碼。所述步驟S405還包括判斷所述第二雜湊值是否與所述交易記錄中的第一雜湊值相同。
步驟S406,對所述第二識別碼及第二雜湊值執行所述加密運算以生成第二驗證碼。
在本實施方式中,生成所述第二驗證碼的加密運算與生成第一驗證碼的加密運算相同。即,所述第二驗證碼也為二維碼。
步驟S407,判斷所述第二驗證碼是否與所述第一驗證碼相同。當判定所述第二軟體程式的第二驗證碼與所述第一驗證碼相同時,所述流程進入步驟S408。當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值不同時,所述流程進入步驟S410。
步驟S408,確定所述第二軟體程式為正版程式。
步驟S409,發送下載指令至所述終端設備2,以允許所述第二軟體程式下載至所述終端設備2。
步驟S410,確定所述第二軟體程式不是正版程式。
步驟S411,發送報警資訊至所述第一軟體程式的開發商。
所述電子裝置1集成的模組/單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本發明實現上述實施例方法中的全部或部分流程,也可以藉由電腦程式來指令相關的硬體來完成,所述的電腦程式可存儲於一電腦可讀存儲介質中,所述電腦程式在被處理器執行時,可實現上述各個方法實施例的步驟。其中,所述電腦程式包括電腦程式代碼,所述電腦程式代碼可以為原始程式碼形式、物件代碼形式、可執行檔或某些中間形式等。所述電腦可讀介質可以包括:能夠攜帶所述電腦程式代碼的任何實體或裝置。需要說明的是,所述電腦可讀介質包含的內容可以根據司法管轄區內立法和專利實踐的要求進行適當的增減,例如在某些司法管轄區,根據立法和專利實踐,電腦可讀介質不包括電載波信號和電信信號。
本發明提供的軟體程式驗證方法、電子裝置及存儲介質藉由裝置唯一識別碼、雜湊值及驗證碼以驗證軟體程式是否為正版程式,所述驗證碼可以建立區塊鏈中軟體程式的裝置唯一識別碼和雜湊值之間的關聯,提高了軟體程式的破解難度以及驗證準確性。
對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由所附申請專利範圍而不是上述說明限定,
因此旨在將落在申請專利範圍的等同要件的含義和範圍內的所有變化涵括在本發明內。不應將申請專利範圍中的任何附圖標記視為限制所涉及的申請專利範圍。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除複數。裝置申請專利範圍中陳述的多個單元或裝置也可以由同一個單元或裝置藉由軟體或者硬體來實現。第一,第二等詞語用來表示名稱,而並不表示任何特定的順序。
綜上所述,本發明符合發明專利要件,爰依法提出專利申請。惟,以上所述者僅為本發明之較佳實施方式,舉凡熟悉本案技藝之人士,於爰依本發明精神所作之等效修飾或變化,皆應涵蓋於以下之申請專利範圍內。
S401-S411:步驟
Claims (9)
- 一種軟體程式驗證方法,其改良在於,所述方法包括:獲取一第一軟體程式的第一識別碼及第一雜湊值;對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼,其中,將所述第一識別碼及第一雜湊值相加後取最後16比特的數值以生成所述第一驗證碼;將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈;獲取待驗證的一第二軟體程式的第二識別碼並計算所述第二軟體程式的第二雜湊值;判斷所述第二軟體程式的第二雜湊值是否與所述第一雜湊值相同;當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值相同時,對所述第二識別碼及第二雜湊值進行所述加密運算以生成第二驗證碼;判斷所述第二驗證碼是否與所述第一驗證碼相同;及當判定所述第二驗證碼與所述第一驗證碼相同時,確定所述第二軟體程式為正版程式。
- 如請求項1所述之軟體程式驗證方法,其中,所述方法還包括:當判定所述第二軟體程式的第二雜湊值與所述第一雜湊值不同,或判定所述第二驗證碼與所述第一驗證碼不同時,確定所述第二軟體程式不是正版程式。
- 如請求項2所述之軟體程式驗證方法,其中,所述方法還包括:當確定所述第二軟體程式不是正版程式時,發送報警資訊至所述第一軟體程式的開發商。
- 如請求項1所述之軟體程式驗證方法,其中,所述對所述第一識別碼及第一雜湊值執行加密運算以生成第一驗證碼包括:對所述第一識別碼及第一雜湊值進行異或運算以生成所述第一驗證碼。
- 如請求項1所述之軟體程式驗證方法,其中,所述方法還包括:將所述加密運算封裝為二維碼演算法;及對所述第一識別碼及第一雜湊值執行所述二維碼演算法以生成所述第一驗證碼。
- 如請求項1所述之軟體程式驗證方法,其中,所述將所述第一識別碼、第一雜湊值及第一驗證碼作為所述第一軟體程式的驗證資訊寫入區塊鏈包括:計算所述驗證資訊的交易雜湊值;及將所述驗證資訊及所述交易雜湊值打包為交易記錄,並根據智慧合約寫入所述區塊鏈。
- 如請求項1所述之軟體程式驗證方法,其中,所述方法還包括:當用戶藉由終端設備下載所述第二軟體程式,並確定所述第二軟體程式為正版程式時,發送下載指令至所述終端設備,以允許所述第二軟體程式下載至所述終端設備。
- 一種電子裝置,其中,所述電子裝置包括:處理器;以及記憶體,所述記憶體中存儲有多個程式模組,所述多個程式模組由所述處理器載入並執行如請求項1至7中任意一項所述之軟體程式驗證方法。
- 一種電腦可讀的存儲介質,其上存儲有至少一條電腦指令,其中,所述指令由處理器載入並執行如請求項1至7中任意一項所述之軟體程式驗證方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109126407A TWI748590B (zh) | 2020-08-04 | 2020-08-04 | 軟體程式驗證方法、電子裝置及存儲介質 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109126407A TWI748590B (zh) | 2020-08-04 | 2020-08-04 | 軟體程式驗證方法、電子裝置及存儲介質 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI748590B true TWI748590B (zh) | 2021-12-01 |
TW202207023A TW202207023A (zh) | 2022-02-16 |
Family
ID=80680842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109126407A TWI748590B (zh) | 2020-08-04 | 2020-08-04 | 軟體程式驗證方法、電子裝置及存儲介質 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI748590B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002015998A2 (en) | 2000-08-21 | 2002-02-28 | International Game Technology | Method and apparatus for software authentication |
TW200513839A (en) * | 2003-04-08 | 2005-04-16 | Qualcomm Inc | Associating software with hardware using cryptography |
KR101979323B1 (ko) * | 2017-12-18 | 2019-05-15 | 주식회사 캐드서브 | 소프트웨어 저작권 인증 관리 방법 |
US20190213333A1 (en) * | 2017-12-01 | 2019-07-11 | Alan Health And Science D/B/A Onpaceplus | Decentralized data authentication system for creation of integrated lifetime health records |
TW201931301A (zh) * | 2017-12-29 | 2019-08-01 | 財團法人印刷創新科技研究發展中心 | 隱藏驗證區域之製作方法 |
-
2020
- 2020-08-04 TW TW109126407A patent/TWI748590B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002015998A2 (en) | 2000-08-21 | 2002-02-28 | International Game Technology | Method and apparatus for software authentication |
TW200513839A (en) * | 2003-04-08 | 2005-04-16 | Qualcomm Inc | Associating software with hardware using cryptography |
US20190213333A1 (en) * | 2017-12-01 | 2019-07-11 | Alan Health And Science D/B/A Onpaceplus | Decentralized data authentication system for creation of integrated lifetime health records |
KR101979323B1 (ko) * | 2017-12-18 | 2019-05-15 | 주식회사 캐드서브 | 소프트웨어 저작권 인증 관리 방법 |
TW201931301A (zh) * | 2017-12-29 | 2019-08-01 | 財團法人印刷創新科技研究發展中心 | 隱藏驗證區域之製作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202207023A (zh) | 2022-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501533B2 (en) | Media authentication using distributed ledger | |
CN109040341B (zh) | 智能合约地址的生成方法、装置、计算机设备及可读存储介质 | |
US20180114261A1 (en) | Verifying reviews on a blockchain | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
CN109067732B (zh) | 物联网设备及数据接入系统、方法及计算机可读存储介质 | |
CN111694589B (zh) | 升级包生成方法、装置、服务器及计算机可读存储介质 | |
EP3817333B1 (en) | Method and system for processing requests in a consortium blockchain | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
US11770240B2 (en) | Electronic device and method for receiving push message stored in blockchain | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
CN109902493B (zh) | 脚本的下发方法及服务器 | |
CN110334542B (zh) | 一种网络证据保全、网络证据存证校验方法及装置 | |
CN108989288B (zh) | 一种基于区块链的移动数字版权保护方法及装置 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
CN110032834B (zh) | 系统授权控制方法、终端设备及存储介质 | |
CN111464319B (zh) | 一种基于中心化块链式账本的交易存储、签名校验方法 | |
CN112733510A (zh) | 一种财务凭证生成方法、装置、设备及计算机可读存储介质 | |
CN111899104B (zh) | 一种业务执行方法及装置 | |
TWI748590B (zh) | 軟體程式驗證方法、電子裝置及存儲介質 | |
CN112291321A (zh) | 业务处理方法、装置及系统 | |
CN114065140A (zh) | 软件程序验证方法、电子装置及存储介质 | |
CN116451225A (zh) | 应用安全检测方法、装置、计算机设备和存储介质 | |
CN110060152B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
CN112286881A (zh) | 一种文档的认证溯源方法及装置 |