CN114880697B 基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質(中國工商銀行股份有限公司)_第1頁
CN114880697B 基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質(中國工商銀行股份有限公司)_第2頁
CN114880697B 基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質(中國工商銀行股份有限公司)_第3頁
CN114880697B 基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質(中國工商銀行股份有限公司)_第4頁
CN114880697B 基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質(中國工商銀行股份有限公司)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

(19)國家知識產(chǎn)權局(12)發(fā)明專利(56)對比文件審查員辛欣(73)專利權人中國工商銀行股份有限公司55號責任公司11240GO6F21/62(2013.01)GO6F21/60(2013.01)權利要求書2頁說明書12頁附圖5頁儲介質(57)摘要本申請公開了一種基于區(qū)塊鏈的數(shù)據(jù)指紋數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋。通過本申請,解2通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,所述數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取所述數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定所述待編碼數(shù)據(jù)的安全等級,其中,所述安全等級用于表征所述待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法,并依據(jù)所述哈希算法對所述待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋;其中,確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法包括:從所述數(shù)據(jù)文件中獲取所述待編碼數(shù)據(jù)的歷史哈希算法,并檢測所述歷史哈希算法是否需要調整;在檢測到所述歷史哈希算法需要調整的情況下,對所述歷史哈希算法中的哈希值添加校驗位,并從多個等級的哈希算法中確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法,其中,所述校驗位用于表征所述歷史哈希算法對應的哈希值失效;在未檢測到所述歷史哈希算法需要調整的情況下,將所述歷史哈希算法確定為所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法;依據(jù)所述哈希算法對所述待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋包括:按照預設規(guī)則對所述待編碼數(shù)據(jù)進行分塊,得到多個第一數(shù)據(jù)塊;將每個所述第一數(shù)據(jù)塊擴展為預設長度的數(shù)據(jù)塊,得到多個第二數(shù)據(jù)塊;將所述多個第二數(shù)據(jù)塊按照預設并行度進行多2.根據(jù)權利要求1所述的方法,其特征在于,通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件包括:校驗所述用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限;在所述區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取所述用戶端的接入憑證,其中,所述接入憑證是所述用戶端接入所述區(qū)塊鏈網(wǎng)絡的憑證;通過所述接入憑證訪問所述區(qū)塊鏈網(wǎng)絡中的所述數(shù)據(jù)存儲系統(tǒng),并判斷所述數(shù)據(jù)存儲系統(tǒng)中是否存儲有所述數(shù)據(jù)文件;在所述數(shù)據(jù)存儲系統(tǒng)中存儲有所述數(shù)據(jù)文件的情況下,確定所述數(shù)據(jù)文件的存儲資源定位信息;通過所述存儲資源定位信息從所述數(shù)據(jù)存儲系統(tǒng)中調用所述數(shù)據(jù)文件。3.根據(jù)權利要求1所述的方法,其特征在于,獲取所述數(shù)據(jù)文件中的待編碼數(shù)據(jù)包括:將所述數(shù)據(jù)文件中不同存儲協(xié)議下的數(shù)據(jù)轉換為預設存儲協(xié)議下的目標數(shù)據(jù);確定所述目標數(shù)據(jù)的數(shù)據(jù)類型,并根據(jù)所述數(shù)據(jù)類型匹配所述數(shù)據(jù)對應的數(shù)據(jù)模型,其中,所述數(shù)據(jù)模型用于表征所述目標數(shù)據(jù)和所述待編碼數(shù)據(jù)之間的映射關系;依據(jù)所述數(shù)據(jù)模型確定所述目標數(shù)據(jù)對應的所述待編碼數(shù)據(jù)。4.根據(jù)權利要求2所述的方法,其特征在于,在校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有在所述區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取所述用戶端的數(shù)字證書,并從所述數(shù)字證書中獲取私鑰和公鑰;在確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法,并依據(jù)所述哈希算法對所述待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋之后,所述方法還包括:3通過所述私鑰對所述數(shù)字指紋進行數(shù)據(jù)加密,得到加密后的數(shù)字指紋;將所述加密后的數(shù)字指紋、所述公鑰和所述待編碼數(shù)據(jù)上傳至所述數(shù)據(jù)存儲系統(tǒng)。5.根據(jù)權利要求4所述的方法,其特征在于,多個所述數(shù)字指紋以預設樹形結構存儲在所述數(shù)據(jù)存儲系統(tǒng)中,在將所述加密后的數(shù)字指紋、所述公鑰和所述待編碼數(shù)據(jù)上傳至所述數(shù)據(jù)存儲系統(tǒng)之后,所述方法還包括:確定所述數(shù)字指紋對應的哈希安全錨定結果,并將所述哈希安全錨定結果返回至所述用戶端,其中,所述哈希安全錨定結果用于在所述預設樹形結構中定位所述數(shù)字指紋。6.一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置,其特征在于,包括:調用單元,用于通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,所述數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取單元,用于獲取所述數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定所述待編碼數(shù)據(jù)的安全等級,其中,所述安全等級用于表征所述待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定單元,用于確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法,并依據(jù)所述哈希算法對所述待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋;其中,所述確定單元包括:第二獲取模塊,用于從所述數(shù)據(jù)文件中獲取所述待編碼數(shù)據(jù)的歷史哈希算法,并檢測所述歷史哈希算法是否需要調整;添加模塊,用于在檢測到所述歷史哈希算法需要調整的情況下,對所述歷史哈希算法中的哈希值添加校驗位,并從多個等級的哈希算法中確定所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法,其中,所述校驗位用于表征所述歷史哈希算法對應的哈希值失效;第三確定模塊,用于在未檢測到所述歷史哈希算法需要調整的情況下,將所述歷史哈希算法確定為所述待編碼數(shù)據(jù)在所述安全等級下對應的哈希算法;所述確定單元還包括:分塊模塊,用于按照預設規(guī)則對所述待編碼數(shù)據(jù)進行分塊,得到多個第一數(shù)據(jù)塊;擴展模塊,用于將每個所述第一數(shù)據(jù)塊擴展為預設長度的數(shù)據(jù)塊,得到多個第二數(shù)據(jù)塊;運算模塊,用于將所述多個第二數(shù)據(jù)塊按照預設并行度進行多重哈希運算,得到所述數(shù)字指紋。7.一種計算機存儲介質,其特征在于,所述計算機存儲介質用于存儲程序,其中,所述程序運行時控制所述計算機存儲介質所在的設備執(zhí)行權利要求1至5中任意一項所述的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。8.一種電子設備,其特征在于,包括一個或多個處理器和存儲器,所述存儲器用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器實現(xiàn)權利要求1至5中任意一項所述的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。4基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質技術領域[0001]本申請涉及區(qū)塊鏈技術領域,具體而言,涉及一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成方背景技術[0002]哈希算法是區(qū)塊鏈領域中的一種算法,哈希算法被廣泛的使用在區(qū)塊鏈中構建區(qū)塊和確認交易的完整性上。隨著時代發(fā)展,哈希算法也被發(fā)現(xiàn)存在沖突必然性的風險漏洞,例如哈希算法中的MD5,SHA1算法在最近被證明不安全。[0003]由于哈希算法對應的哈希函數(shù)輸出的字符串長度一定,不同的輸入存在會產(chǎn)生相同的哈希值的情況。如果一個攻擊者能夠使哈希函數(shù)故意產(chǎn)生沖突,他便能夠把惡意的文件或者數(shù)據(jù)偽裝成正確的哈希值存儲在區(qū)塊鏈上,并將惡意的文件或者數(shù)據(jù)傳遞給區(qū)塊鏈[0004]然而,目前大量的存量業(yè)務系統(tǒng)依舊在使用存在風險漏洞的哈希算法,并且由于區(qū)塊鏈技術的特征,存量業(yè)務系統(tǒng)存儲的歷史記錄是不可篡改的,因此業(yè)務系統(tǒng)存在安全風險。[0005]針對相關技術中哈希算法存在產(chǎn)生碰撞沖突的風險漏洞的問題,目前尚未提出有效的解決方案。發(fā)明內(nèi)容[0006]本申請?zhí)峁┮环N基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法、裝置和存儲介質,以解決相關技術中哈希算法存在產(chǎn)生碰撞沖突的風險漏洞的問題。[0007]根據(jù)本申請的一個方面,提供了一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。該方法包括:通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋。[0008]可選地,通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件包括:校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限;在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的接入憑證,其中,接入憑證是用戶端接入?yún)^(qū)塊鏈網(wǎng)絡的憑證;通過接入憑證訪問區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng),并判斷數(shù)據(jù)存儲系統(tǒng)中是否存儲有數(shù)據(jù)文件;在數(shù)據(jù)存儲系統(tǒng)中存儲有數(shù)據(jù)文件的情況下,確定數(shù)據(jù)文件的存儲資源定位信息;通過存儲資源定位信息從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件。通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件用于調取需要進行生成數(shù)字指紋的文件。[0009]可選地,獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù)包括:將數(shù)據(jù)文件中不同存儲協(xié)議下的數(shù)據(jù)轉換為預設存儲協(xié)議下的目標數(shù)據(jù);確定目標數(shù)據(jù)的數(shù)據(jù)類型,并根據(jù)數(shù)據(jù)類型匹配數(shù)據(jù)對應的數(shù)據(jù)模型,其中,數(shù)據(jù)模型用于表征目標數(shù)據(jù)和待編碼數(shù)據(jù)之間的映射關系;依據(jù)5數(shù)據(jù)模型確定目標數(shù)據(jù)對應的待編碼數(shù)據(jù)。通過轉換存儲協(xié)議,匹配數(shù)據(jù)模型將不同協(xié)議,不同數(shù)據(jù)類型的數(shù)據(jù)轉換為同一協(xié)議下的待編碼數(shù)據(jù)。[0010]可選地,確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法包括:從數(shù)據(jù)文件中獲取待編碼數(shù)據(jù)的歷史哈希算法,并檢測歷史哈希算法是否需要調整;在檢測到歷史哈希算法需要調整的情況下,對歷史哈希算法中的哈希值添加校驗位,并從多個等級的哈希算法中確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,其中,校驗位用于表征歷史哈希算法對應的哈希值失效;在未檢測到歷史哈希算法需要調整的情況下,將歷史哈希算法確定為待編碼數(shù)據(jù)在安全等級下對應的哈希算法。通過確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,能夠將數(shù)據(jù)的歷史哈希算法調整為數(shù)據(jù)在當前應用場景下的哈希算法。[0011]可選地,依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋包括:按照預設規(guī)則對待編碼數(shù)據(jù)進行分塊,得到多個第一數(shù)據(jù)塊;將每個第一數(shù)據(jù)塊擴展為預設長度的數(shù)據(jù)塊,得到多個第二數(shù)據(jù)塊;將多個第二數(shù)據(jù)塊按照預設并行度進行多重哈希運算,得到數(shù)字指紋。通過對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋,能夠有效防止哈希算法的碰撞沖突,使數(shù)據(jù)可以安全存儲。[0012]可選地,在校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限之后,方法還包括:在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的數(shù)字證書,并從數(shù)字證書中獲取私鑰和公鑰;在確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋之后,方法還包括:通過私鑰對數(shù)字指紋進行數(shù)據(jù)加密,得到加密后的數(shù)字指紋;將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)。通過將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)可以將數(shù)據(jù)存儲在區(qū)塊鏈的數(shù)據(jù)存儲系統(tǒng)中。[0013]可選地,多個數(shù)字指紋以預設樹形結構存儲在數(shù)據(jù)存儲系統(tǒng)中,在將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)之后,方法還包括:確定數(shù)字指紋對應的哈希安全錨定結果,并將哈希安全錨定結果返回至用戶端,其中,哈希安全錨定結果用于在預設樹形結構中定位數(shù)字指紋。通過確定哈希安全錨定結果可以使用戶端能夠在數(shù)據(jù)存儲系統(tǒng)中索引需要的數(shù)據(jù)。[0014]根據(jù)本申請的另一方面,提供了一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置。該裝置包括:調用單元,用于通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取單元,用于獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定單元,用于確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋。[0015]根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機存儲介質,計算機存儲介質用于存儲程序,其中,程序運行時控制計算機存儲介質所在的設備執(zhí)行一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。[0016]根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設備,包含一個或多個處理器和存儲器;存儲器中存儲有計算機可讀指令,處理器用于運行計算機可讀指令,其中,計算機可讀指令運行時執(zhí)行一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。[0017]通過本申請,采用以下步驟:通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,6數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋,解決了相關技術中哈希算法存在產(chǎn)生碰撞沖突的風險漏洞的問題。通過對數(shù)據(jù)文件中的數(shù)據(jù)進行多重哈希運算獲得數(shù)字指紋,將多重哈希運算作為數(shù)據(jù)的哈希算法,進而達到了區(qū)塊鏈技術中的哈希算法具有強碰撞阻力的效果。附圖說明[0018]構成本申請的一部分的附圖用來提供對本申請的進一步理解,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:[0019]圖1是根據(jù)本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法的流程圖;[0020]圖2是根據(jù)本申請實施例提供的獲取待編碼數(shù)據(jù)的結構示意圖;[0021]圖3是根據(jù)本申請實施例提供的數(shù)字指紋的示意圖;[0022]圖4是根據(jù)本申請實施例提供的區(qū)塊鏈安全存儲系統(tǒng)的結構示意圖;[0023]圖5是根據(jù)本申請實施例提供的可信存儲服務子系統(tǒng)的結構示意圖;[0024]圖6是根據(jù)本申請實施例提供的區(qū)塊鏈安全存儲系統(tǒng)的節(jié)點信息交互圖;[0025]圖7是根據(jù)本申請實施例提供的區(qū)塊鏈安全共識記賬節(jié)點系統(tǒng)的結構示意圖;[0026]圖8是根據(jù)本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置的示意圖;[0027]圖9是根據(jù)本申請實施例提供的一種電子設備的示意圖。具體實施方式[0028]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。[0029]為了使本技術領域的人員更好地理解本申請方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范[0030]需要說明的是,本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。[0031]需要說明的是,本公開所涉及的用戶信息(包括但不限于用戶設備信息、用戶個人信息等)和數(shù)據(jù)(包括但不限于用于展示的數(shù)據(jù)、分析的數(shù)據(jù)等),均為經(jīng)用戶授權或者經(jīng)過各方充分授權的信息和數(shù)據(jù)。[0032]為了便于描述,以下對本申請實施例涉及的部分名詞或術語進行說明:[0033]碰撞阻力:是指對于兩個不同的輸入,必須產(chǎn)生兩個不同的輸出。如果對于兩個不7同的輸入產(chǎn)生了相同的輸出,那么就說明不具備碰撞阻力,或是弱碰撞阻力。[0034]Merkle葉節(jié)點組成,每個葉節(jié)點均以數(shù)據(jù)塊的哈希值作為標簽,而除了葉節(jié)點以外其他節(jié)點則以其子節(jié)點標簽的加密哈希值作為標簽。[0035]根據(jù)本申請的實施例,提供了一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。[0036]圖1是根據(jù)本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法的流程圖。如圖1[0037]步驟S102,通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng)。[0038]具體地,用戶端是用戶在區(qū)塊鏈網(wǎng)絡中的節(jié)點對應的端口,用于存儲數(shù)據(jù)到區(qū)塊鏈網(wǎng)絡中,數(shù)據(jù)文件是存儲在數(shù)據(jù)存儲系統(tǒng)中并且使用了存在碰撞沖突的哈希算法的文件。[0039]步驟S104,獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度。[0040]具體地,待編碼數(shù)據(jù)為用戶需要存儲在區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù),安全等級是人為劃定的對應不同哈希算法的等級,例如MD5、SHA-1這兩種哈希算法為低安全等級的哈希算法,SHA-256這種哈希算法為高安全等級的哈希算法,哈希算法的等級劃分是根據(jù)哈希算法具[0041]步驟S106,確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋。[0042]具體地,確定待編碼數(shù)據(jù)在當前應用場景下的安全等級,更換對應安全等級的哈希算法,例如X銀行的一種A數(shù)據(jù)非核心數(shù)據(jù),最初使用的哈希算法為MD5,而近期由于業(yè)務換成更高安全等級的SHA-256哈希算法。[0043]本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法,通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋,解決了相關技術中哈希算法存在產(chǎn)生碰撞沖突的風險漏洞的問題。通過對數(shù)據(jù)文件中的數(shù)據(jù)進行多重哈希運算獲得數(shù)字指紋,將多重哈希運算作為數(shù)據(jù)的哈希算法,進而達到了區(qū)塊鏈技術中的哈希算法具有強碰撞阻力的效果。[0044]對需要得到數(shù)字指紋的數(shù)據(jù)進行多重哈希運算之前需要在數(shù)據(jù)存儲系統(tǒng)中調用對應的數(shù)據(jù)文件,可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件包括:校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限;在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的接入憑證,其中,接入憑證是用戶端接入?yún)^(qū)塊鏈網(wǎng)絡的憑證;通過接入憑證訪問區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng),并判斷數(shù)據(jù)存儲系統(tǒng)中是否存儲有數(shù)據(jù)文件;在數(shù)據(jù)存儲系統(tǒng)中存儲有數(shù)據(jù)文件的情況8下,確定數(shù)據(jù)文件的存儲資源定位信息;通過存儲資源定位信息從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件。[0045]具體地,從區(qū)塊鏈的數(shù)據(jù)存儲系統(tǒng)中獲取需要的數(shù)據(jù)前,對用戶的身份進行校驗,在用戶身份具有在區(qū)塊鏈網(wǎng)絡中存儲數(shù)據(jù)的權限的情況下,用戶端獲得接入憑證,接入憑證可以讓用戶訪問數(shù)據(jù)存儲系統(tǒng),用戶訪問數(shù)據(jù)存儲系統(tǒng)后能夠判斷需要的數(shù)據(jù)文件是否存在并且獲得數(shù)據(jù)文件在存儲系統(tǒng)中的定位信息,然后調用數(shù)據(jù)文件。通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件可以校驗用戶端的身份,保證數(shù)據(jù)的安全存儲和調用。[0046]數(shù)據(jù)文件中包含不同存儲協(xié)議下的不同數(shù)據(jù)類型的數(shù)據(jù),可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù)包括:將數(shù)據(jù)文件中不同存儲協(xié)議下的數(shù)據(jù)轉換為預設存儲協(xié)議下的目標數(shù)據(jù);確定目標數(shù)據(jù)的數(shù)據(jù)類型,并根據(jù)數(shù)據(jù)類型匹配數(shù)據(jù)對應的數(shù)據(jù)模型,其中,數(shù)據(jù)模型用于表征目標數(shù)據(jù)和待編碼數(shù)據(jù)之間的映射關系;依據(jù)數(shù)據(jù)模型確定目標數(shù)據(jù)對應的待編碼數(shù)據(jù)。[0047]具體地,圖2是根據(jù)本申請實施例提供的獲取待編碼數(shù)據(jù)的結構示意圖。如圖2所示,獲取待編碼數(shù)據(jù)的結構包括數(shù)據(jù)輸入模塊201和數(shù)據(jù)統(tǒng)一模型模塊202。數(shù)據(jù)輸入模塊201是一個支持S3協(xié)議的存儲網(wǎng)絡,通過存儲協(xié)議轉換,將數(shù)據(jù)文件中不同存儲協(xié)議下的數(shù)據(jù)轉換為預設存儲協(xié)議下的目標數(shù)據(jù)。數(shù)據(jù)統(tǒng)一模型模塊202對目標數(shù)據(jù)根據(jù)數(shù)據(jù)類型匹Map、Link等,其中List、Map為遞歸類型。數(shù)據(jù)模型描述了數(shù)據(jù)類型和用于索引的字符串標識符路徑,字符串標識符路徑遵循與URI路徑相似的轉義和分段規(guī)則、約束構造,字符串標識符路徑定義了從數(shù)據(jù)模型層到包含復雜布局的實際數(shù)據(jù)文件中數(shù)據(jù)結構的映射,實現(xiàn)數(shù)據(jù)文件的不同數(shù)據(jù)類型的數(shù)據(jù)的序列化和反序列化功能。通過轉換存儲協(xié)議,匹配數(shù)據(jù)模型將不同協(xié)議,實現(xiàn)了將不同數(shù)據(jù)類型的數(shù)據(jù)轉換為同一協(xié)議下的待編碼數(shù)據(jù)的目的,從而為進一步的數(shù)據(jù)處理奠定了基礎。[0048]由于待編碼數(shù)據(jù)的歷史哈希算法可能需要調整,可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法包括:從數(shù)據(jù)文件中獲取待編碼數(shù)據(jù)的歷史哈希算法,并檢測歷史哈希算法是否需要調整;在檢測到歷史哈希算法需要調整的情況下,對歷史哈希算法中的哈希值添加校驗位,并從多個等級的哈希算法中確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,其中,校驗位用于表征歷史哈希算法對應的哈希值失效;在未檢測到歷史哈希算法需要調整的情況下,將歷史哈希算法確定為待編碼數(shù)據(jù)在安全等級下對應的哈希算法。[0049]具體地,歷史哈希算法的安全等級在當前應用場景下存在需要調整哈希算法的情況,由于區(qū)塊鏈技術的不可篡改特性,無法直接在歷史哈希算法上調整,因此在歷史哈希算法需要調整的情況下,對歷史哈希算法對應的哈希值添加校驗位來表征歷史哈希算法失效。通過確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,能夠將數(shù)據(jù)的歷史哈希算法調整為數(shù)據(jù)在當前應用場景下的哈希算法,從而得到與當前應用場景適配的哈希算法。[0050]確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法后,根據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算獲得數(shù)字指紋,可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋包括:按照預設規(guī)則對待編碼數(shù)據(jù)進行分塊,得到多個第一數(shù)據(jù)塊;將每個第一數(shù)據(jù)塊擴展為預設長度的數(shù)9據(jù)塊,得到多個第二數(shù)據(jù)塊;將多個第二數(shù)據(jù)塊按照預設并行度進行多重哈希運算,得到數(shù)字指紋。[0051]具體地,結合數(shù)據(jù)分塊和數(shù)據(jù)文件中不同數(shù)據(jù)的安全等級,使用不同運算速度和安全等級的哈希算法進行分塊哈希,通過建立默克爾樹的樹形結構進行數(shù)字指紋的存儲。通過對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋,能夠有效防止哈希算法的碰撞沖突,使數(shù)據(jù)可以安全存儲。[0052]例如,預設規(guī)則為多重哈希算法H,H被定義為處理整數(shù)個大小為B字節(jié)的第二數(shù)據(jù)塊。預設規(guī)則中填充函數(shù)表示為PadH(數(shù)據(jù),數(shù)據(jù)長度,塊大小B),PadH使用預先確定的模式和消息長度的串聯(lián)方式,將第一數(shù)據(jù)塊擴展到B的倍數(shù)的最小長度字節(jié),得到第二數(shù)據(jù)塊。對于長度為L的數(shù)據(jù)MO以給定的并行度S進行散列,多重哈希運算的過程如下(其中符號表示連接):將PadH(MO,L,B*S)應用于數(shù)據(jù)MO,生成長度為L’的MO'。L’分,以便將MO’的每個字節(jié)大小為W位的字數(shù)組分配給不同的段。每個段都表示為一個W位字[0057]其中每個MO’[n]是每個段中填充數(shù)據(jù)的字節(jié)大小為W的索引;在段上生成S個葉級摘要,如Dk=H(Segk)用于k=0…(S-1);通過將每個葉級摘要的字節(jié)大小為W位的字數(shù)組交中每個Dk[n]是一個字節(jié)大小為W位的索引到一個段的摘要。將M1生成為PadH(M1,S*D,B);將實際的數(shù)據(jù)文件放到本地存儲,并將上述H(M1)上上傳到區(qū)塊鏈存儲;元數(shù)據(jù)和經(jīng)過多重哈希運算后的哈希值及子哈希值存儲到到區(qū)塊鏈的狀態(tài)數(shù)據(jù)中,根根據(jù)不同的業(yè)務應用場景及用戶權限進行數(shù)據(jù)隔離存儲。[0058]需要說明的是,采用多重哈希算法和TLV編碼方式獲得數(shù)字指紋。不同于特定哈希算法的格式,數(shù)字指紋描述了哈希算法類型以及對應的哈希值。通過TLV編碼方式確定數(shù)據(jù)的編碼,編碼后在區(qū)塊鏈存儲系統(tǒng)中能感知所有存儲的數(shù)據(jù)的數(shù)據(jù)類型以及元數(shù)據(jù)信息。參考業(yè)界通用的BER(BasicEncodingRule)編碼規(guī)格說明,描述如何將ASNI類型的值編碼成字符串(stringofoctets)的方法。BER的數(shù)據(jù)都是由三個域構成:標識域(Tag)+長度域Type,用于標識標簽或者編碼格式信息;L定義數(shù)值的長度;V表示實際的數(shù)值。T和L的長度固定,一般是2或4個字節(jié),V的長度由Length指定。圖3是根據(jù)本申請實值和哈希算法類型,例如哈希算法類型為sha2-256,數(shù)字指紋的Tag可以表示18-0x12,length是哈希的實際長度(使用sha2-256它將是256位,等于32個字節(jié)),value是實際的哈希算法生成的哈希值。數(shù)字指紋保證了數(shù)據(jù)標識的靈活性和可擴展性,由全網(wǎng)共同約定和遵守,該約定以區(qū)塊鏈智能合約的方式進行約定,并在區(qū)塊鏈進行管理。[0059]數(shù)字指紋需要上傳到區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng)中,可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,在校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限之后,方法還包括:在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的數(shù)字證書,并從數(shù)字證書中獲取私鑰和公鑰;在確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋之后,方法還包括:通過私鑰對數(shù)字指紋進行數(shù)據(jù)加密,得到加密后的數(shù)字指紋;將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)。[0060]具體地,數(shù)據(jù)文件中的數(shù)據(jù)經(jīng)過多重哈希運算得到數(shù)字指紋,數(shù)字指紋需要經(jīng)過用戶端加密后上傳到區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng)中。通過將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng),通過區(qū)塊鏈的不可篡改性保證數(shù)據(jù)的安全性,通過區(qū)塊鏈的數(shù)據(jù)共享機制方便數(shù)據(jù)的流轉。[0061]用戶將數(shù)字指紋存儲到數(shù)據(jù)存儲系統(tǒng)后,還需要獲得哈希安全錨定結果用于索引需要的數(shù)據(jù),可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法中,多個數(shù)字指紋以預設樹形結構存儲在數(shù)據(jù)存儲系統(tǒng)中,在將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)之后,方法還包括:確定數(shù)字指紋對應的哈希安全錨定結果,并將哈希安全錨定結果返回至用戶端,其中,哈希安全錨定結果用于在預設樹形結構中定位數(shù)字指紋。[0062]具體地,哈希安全錨定是對存儲在默克爾樹中的數(shù)字指紋進行索引的一種方法。在對數(shù)據(jù)進行索引時,需要讀取安全錨定結果,獲得數(shù)據(jù)對應的數(shù)字指紋在默克爾樹形結構中的定位,通過定位獲得索引的數(shù)字指紋,接下來對數(shù)字指紋進行校驗,在校驗數(shù)字指紋為索引的數(shù)據(jù)對應數(shù)字指紋時,獲得數(shù)字指紋對應的數(shù)據(jù)。通過確定哈希安全錨定結果,可以使用戶端能夠在數(shù)據(jù)存儲系統(tǒng)中快速索引到需要的數(shù)據(jù)。[0063]需要說明的是,對數(shù)字指紋進行校驗時,校驗設備必須替換當前加密散列算法(例如SHA-256),使用最有效的計算驗證的兼容擴展哈希算法之一。例如,如果校驗設備在其處理器內(nèi)核中具有128位SIMD數(shù)據(jù)路徑執(zhí)行單元,需要校驗的是SHA-256的摘要,則理想情況下檢驗設備會更喜歡SHA256x4(因為SHA-256算法是基于32位的,基于128位SIMD執(zhí)行單元我們可以并行處理128/32=4個段)。因此,檢驗設備不會使用當前使用的32位算法之一128位SIMD的角度來看我們只需要4個段,但該算法具有非常受限的數(shù)據(jù)依賴性,這使得在沒有額外并行性的情況下很難獲得執(zhí)行單元的最佳吞吐量。[0064]由于有許多不同計算強度的校驗設備,并且數(shù)字指紋必須找到適用于其大多數(shù)驗證設備的并行級別。我們的方案不需要服務器非常準確地估計這一點,因為我們總是可以在校驗時創(chuàng)建更高級別的并行性,并且如果校驗設備的SIMD或硬件能力無法處理盡可能多的段,則讓校驗設備在校驗時執(zhí)行多遍操作。例如,校驗設備可注意,數(shù)據(jù)仍然可以以流式方式有效地導入一次,但是,應用程序將需要在狀態(tài)變量集之間循環(huán)。例如,假設客戶端設備根本沒有SIMD單元,并且需要執(zhí)行簡單的標量運算來處理SHA256x4哈希值。它不是處理1組SHA-256狀態(tài)變量(32字節(jié)),而是同時處理4個這樣的狀態(tài)變量副本(128字節(jié)),在處理來自數(shù)據(jù)緩沖區(qū)的字段時循環(huán)遍歷它們。這種任務集大小的增加非常小。一個可能的問題是與數(shù)據(jù)塊的消息調度相關的任務集大小增加(對于SHA)。如果11這種工作集大小的增加有問題,可以選擇存儲4個數(shù)據(jù)塊并一次嚴格處理一個交錯塊。[0066]根據(jù)本申請的另一實施例,提供了一種區(qū)塊鏈安全存儲系統(tǒng)。圖4是根據(jù)本申請實施例提供的區(qū)塊鏈安全存儲系統(tǒng)的結構示意圖,如圖4所示,該系統(tǒng)包括用戶端401,可信存儲服務子系統(tǒng)402,區(qū)塊鏈網(wǎng)絡403,存儲智能合約404,以及進行多重哈希編碼的數(shù)字資產(chǎn)內(nèi)容標識405。[0067]本實施例的區(qū)塊鏈安全存儲系統(tǒng)通過多重哈希算法的設計實現(xiàn)數(shù)據(jù)文件的安全存儲。務器等,用戶可以具有完全的權限,并對其他用戶控制訪問權限,用戶基于此進行數(shù)字資產(chǎn)的管理,制作數(shù)據(jù)資產(chǎn)文件,同時根據(jù)安全場景進行密鑰的管理或者存儲。[0069]可信存儲服務子系統(tǒng)402,是一種基于區(qū)塊鏈的去中心化的可信數(shù)據(jù)存儲系統(tǒng)。該系統(tǒng)是一種去中心化,點對點的對等分布式區(qū)塊鏈存儲系統(tǒng),提供了一個高吞吐量,按內(nèi)容尋址的塊存儲模型,支持存儲的靈活擴容,多存儲協(xié)議適配支持,點對點分塊安全加密,去方共享存儲網(wǎng)絡。[0070]具體地,圖5是根據(jù)本申請實施例提供的可信存儲服務子系統(tǒng)的結構示意圖。如圖5所示,可信存儲服務子系統(tǒng)402包括服務接口模塊501,核心API模塊502,交互操作模塊503,數(shù)據(jù)服務模塊504,多重哈希模塊505,數(shù)據(jù)路由模塊506。可信存儲服務子系統(tǒng)402通過核心API模塊502對外提供交互接口和服務接口進行數(shù)據(jù)文件和區(qū)塊鏈節(jié)點的管理;數(shù)據(jù)服務模塊504,包括存儲接入網(wǎng)關子模塊,數(shù)據(jù)操作子模塊,數(shù)據(jù)監(jiān)控子模塊,數(shù)據(jù)存儲子模塊。主要實現(xiàn)存儲協(xié)議轉換,數(shù)據(jù)的同步,數(shù)據(jù)性能容量監(jiān)控以及數(shù)據(jù)的持久化存儲等功能;多重哈希模塊505,包括數(shù)據(jù)分級子模塊,多重哈希子模塊,上鏈錨定子模塊,證書管理子模塊。主要實現(xiàn)數(shù)據(jù)安全等級分級,多重哈希算法實現(xiàn),多區(qū)塊鏈底層產(chǎn)品和智能合約接口適配,證書的生成和管理等功能;數(shù)據(jù)路由模塊506,包括安全校驗子模塊,哈希路由子模[0072]FindPeer(nodeNodeId)//獲取節(jié)點地址[0074]GetValue(key[]bytes,[0075]ProvideValue(k[0078]區(qū)塊鏈網(wǎng)絡403,是一種具有多方高效共識,強安全合約引擎,可靠隱私保護,跨鏈互聯(lián)互通等特性的區(qū)塊鏈聯(lián)盟鏈網(wǎng)絡,同時可以支持其他開源主流并提供可編程智能合約等聯(lián)盟鏈和公鏈,用于提供數(shù)據(jù)資產(chǎn)標識的多方數(shù)據(jù)流通和治理,同時提供基本的接入授權和認證,并支持不同機構不同的業(yè)務場景進行數(shù)據(jù)資產(chǎn)的物理和邏輯上的隔離,保障數(shù)據(jù)的安全可信,數(shù)字資產(chǎn)訪問和操作留痕。[0079]智能合約404,區(qū)塊鏈網(wǎng)絡的核心實現(xiàn),使去中心化(分布式)區(qū)塊鏈系統(tǒng)具有可編程性,智能合約在可執(zhí)行代碼中定義不同組織之間的規(guī)則,也是一種旨在信息化方式傳播驗證或者執(zhí)行合同的計算機協(xié)議,通過智能合約生成交易記錄到區(qū)塊鏈賬本,可以在沒有[0080]數(shù)字資產(chǎn)內(nèi)容標識405,一個自描述的基于內(nèi)容尋址的標識符,基于哈希算法將任意長度的消息壓縮到某一個固定長度的消息摘要。通常用于區(qū)塊鏈領域的數(shù)據(jù)資產(chǎn)的鏈上鏈下協(xié)同存儲,采用TLV編碼方案對區(qū)塊鏈存儲的數(shù)字資產(chǎn)進行唯一的標識,該標識能自描述哈希類型,保證數(shù)字資產(chǎn)標識的數(shù)字指紋的唯一性。[0081]圖6是根據(jù)本申請實施例提供的區(qū)塊鏈安全存儲系統(tǒng)的節(jié)點信息交互圖。[0082]如圖6所示,用戶設備登陸區(qū)塊鏈管理平臺獲取區(qū)塊鏈節(jié)點和證書配置文件,持有區(qū)塊鏈接入和發(fā)起交易的用戶證書和密鑰;通過調用區(qū)塊鏈節(jié)點進行區(qū)塊鏈權限認證,返回接入憑證,用于存儲資源的訪問和數(shù)據(jù)資產(chǎn)的存儲;調用區(qū)塊鏈智能合約中的存儲資源接口,確認在區(qū)塊鏈網(wǎng)絡中是否有存儲資源,如果有則返回存儲URL和存儲憑證用于數(shù)據(jù)資產(chǎn)存儲;用戶或者應用系統(tǒng)發(fā)起數(shù)據(jù)資產(chǎn)存儲請求到可信存儲服務,可信存儲服務調用多重哈希運算,根據(jù)數(shù)據(jù)大小和數(shù)據(jù)安全等級,進行分塊哈希安全運算。并返回數(shù)據(jù)指紋給用戶;用戶使用本地的私鑰進行數(shù)據(jù)加密,并調用智能合約將元數(shù)據(jù)信息和加密的數(shù)據(jù)指紋以及公鑰證書上鏈存儲,并進行哈希安全錨定,區(qū)塊鏈對存儲的操作留痕成功后,最終返回存儲成功結果給用戶;其他用戶基于自己在區(qū)塊鏈中獲取的權限和憑證,同樣請求區(qū)塊鏈進行數(shù)據(jù)資產(chǎn)的轉移申請或者使用。至此完成基于多重哈希的區(qū)塊鏈安全存儲的節(jié)點間交互全流程。[0083]根據(jù)本申請的另一實施例,提供了一種區(qū)塊鏈安全共識記賬節(jié)點系統(tǒng),圖7是根據(jù)本申請實施例提供的區(qū)塊鏈安全共識記賬節(jié)點系統(tǒng)的結構示意圖。[0084]如圖7所示,該系統(tǒng)包括區(qū)塊鏈共識記賬節(jié)點701和存儲合約702,共識記賬節(jié)點701包括狀態(tài)數(shù)據(jù)和區(qū)塊數(shù)據(jù),狀態(tài)數(shù)據(jù)包括通過多重哈希生成的數(shù)據(jù)資產(chǎn)的根哈希A,數(shù)據(jù)資產(chǎn)內(nèi)容哈希A索引A1,A2等分塊的哈希。區(qū)塊數(shù)據(jù)在原有交易區(qū)塊梅克數(shù)據(jù)的基礎上增加數(shù)據(jù)哈希校驗位,用于哈希算法校驗。存儲合約702,主要實現(xiàn)服務接入認證,存儲資源管[0085]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。[0086]本申請實施例還提供了一種基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置,需要說明的是,本申請實施例的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置可以用于執(zhí)行本申請實施例所提供的用于基于區(qū)塊鏈的數(shù)據(jù)指紋生成方法。以下對本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置進行介紹。[0087]圖8是根據(jù)本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置的示意圖。如圖8所示,該裝置包括:調用單元10,用于通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取單元20,用于獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定單元30,用于確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋。[0088]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,調用單元10包括:檢驗模塊,用于校驗用戶端對應的區(qū)塊鏈節(jié)點是否具有數(shù)據(jù)存儲權限;第一獲取模塊,用于在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的接入憑證,其中,接入憑證是用戶端接入?yún)^(qū)塊鏈網(wǎng)絡的憑證;訪問模塊,用于通過接入憑證訪問區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng),并判斷數(shù)據(jù)存儲系統(tǒng)中是否存儲有數(shù)據(jù)文件;第一確定模塊,用于在數(shù)據(jù)存儲系統(tǒng)中存儲有數(shù)據(jù)文件的情況下,確定數(shù)據(jù)文件的存儲資源定位信息;調用模塊,用于通過存儲資源定位信息從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件。[0089]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,獲取單元20包括:轉換模塊,用于將數(shù)據(jù)文件中不同存儲協(xié)議下的數(shù)據(jù)轉換為預設存儲協(xié)議下的目標數(shù)據(jù);匹配模塊,用于確定目標數(shù)據(jù)的數(shù)據(jù)類型,并根據(jù)數(shù)據(jù)類型匹配數(shù)據(jù)對應的數(shù)據(jù)模型,其中,數(shù)據(jù)模型用于表征目標數(shù)據(jù)和待編碼數(shù)據(jù)之間的映射關系;第二確定模塊,用于依據(jù)數(shù)據(jù)模型確定目標數(shù)據(jù)對應的待編碼數(shù)據(jù)。[0090]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,確定單元30包括:第二獲取模塊,用于從數(shù)據(jù)文件中獲取待編碼數(shù)據(jù)的歷史哈希算法,并檢測歷史哈希算法是否需要調整;添加模塊,用于在檢測到歷史哈希算法需要調整的情況下,對歷史哈希算法中的哈希值添加校驗位,并從多個等級的哈希算法中確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,其中,校驗位用于表征歷史哈希算法對應的哈希值失效;第三確定模塊,用于在未檢測到歷史哈希算法需要調整的情況下,將歷史哈希算法確定為待編碼數(shù)據(jù)在安全等級下對應的哈希算法。[0091]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,確定單元30還包括:分塊模塊,用于按照預設規(guī)則對待編碼數(shù)據(jù)進行分塊,得到多個第一數(shù)據(jù)塊;擴展模塊,用于將每個第一數(shù)據(jù)塊擴展為預設長度的數(shù)據(jù)塊,得到多個第二數(shù)據(jù)塊;運算模塊,用于將多個第二數(shù)據(jù)塊按照預設并行度進行多重哈希運算,得到數(shù)字指紋。[0092]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,調用單元10還包括:第三獲取模塊,用于在區(qū)塊鏈節(jié)點具有數(shù)據(jù)存儲權限的情況下,獲取用戶端的數(shù)字證書,并從數(shù)字證書中獲取私鑰和公鑰;確定單元30還包括:加密模塊,用于通過私鑰對數(shù)字指紋進行數(shù)據(jù)加密,得到加密后的數(shù)字指紋;上傳模塊,用于將加密后的數(shù)字指紋、公鑰和待編碼數(shù)據(jù)上傳至數(shù)據(jù)存儲系統(tǒng)。[0093]可選地,在本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置中,確定單元30還包括:第四確定模塊,用于確定數(shù)字指紋對應的哈希安全錨定結果,并將哈希安全錨定結果返回至用戶端,其中,哈希安全錨定結果用于在預設樹形結構中定位數(shù)字指紋。[0094]本申請實施例提供的基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置,通過調用單元10,用于通過用戶端從數(shù)據(jù)存儲系統(tǒng)中調用數(shù)據(jù)文件,其中,數(shù)據(jù)存儲系統(tǒng)為區(qū)塊鏈網(wǎng)絡中的數(shù)據(jù)存儲系統(tǒng);獲取單元20,用于獲取數(shù)據(jù)文件中的待編碼數(shù)據(jù),并確定待編碼數(shù)據(jù)的安全等級,其中,安全等級用于表征待編碼數(shù)據(jù)在當前安全場景中需要保密的程度;確定單元30,用于確定待編碼數(shù)據(jù)在安全等級下對應的哈希算法,并依據(jù)哈希算法對待編碼數(shù)據(jù)進行多重哈希運算,得到數(shù)字指紋,解決了相關技術中哈希算法存在產(chǎn)生碰撞沖突的風險漏洞的問題。通過對數(shù)據(jù)文件中的數(shù)據(jù)進行多重哈希運算獲得數(shù)字指紋,將多重哈希運算作為數(shù)據(jù)的哈希算法,進而達到了區(qū)塊鏈技術中的哈希算法具有強碰撞阻力的效果。[0095]上述基于區(qū)塊鏈的數(shù)據(jù)指紋生成裝置包括處理器和存儲器,上述調用單元10、獲取單元20和確定單元30等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實現(xiàn)相應的功能。[0096]處理器中包含內(nèi)核,由內(nèi)核去存儲器中調取相應的程序單元。內(nèi)核可以設置一個或以上,通過調整內(nèi)核參數(shù)來達到區(qū)塊鏈技術中的哈希算法具有強碰撞阻力的效果。[0097]存儲器可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論