亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈的電子證件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2018-10-25 01:21:38文淑華
        現(xiàn)代計(jì)算機(jī) 2018年27期
        關(guān)鍵詞:證件哈希課程設(shè)計(jì)

        文淑華

        (電子科技大學(xué)信息與軟件工程學(xué)院,成都 610054)

        0 引言

        電子科技大學(xué)信息與軟件工程學(xué)院非常重視學(xué)生工程實(shí)踐能力的培養(yǎng),將綜合課程設(shè)計(jì)列為學(xué)生的實(shí)踐類核心課程,分為綜合課程設(shè)計(jì)I、綜合課程設(shè)計(jì)II、綜合課程設(shè)計(jì)III這三門必修課程,分別對(duì)應(yīng)1個(gè)學(xué)分、2個(gè)學(xué)分和2個(gè)學(xué)分。綜合課程設(shè)計(jì)III針對(duì)高年級(jí)學(xué)生開設(shè),要求學(xué)生在學(xué)習(xí)相關(guān)課程后參與一個(gè)具有一定難度的小型軟件工程項(xiàng)目,要求學(xué)生利用軟件工程的思想完成整個(gè)項(xiàng)目周期的所有階段,并能對(duì)結(jié)果進(jìn)行預(yù)測和模擬,在設(shè)計(jì)過程中能體現(xiàn)一定的創(chuàng)新意識(shí)。綜合課程設(shè)計(jì)III的執(zhí)行采用教師出題、學(xué)生做題的形式,指導(dǎo)教師需要考慮大三學(xué)生的能力和知識(shí)結(jié)構(gòu),擬出一個(gè)切合學(xué)生實(shí)際情況并能培養(yǎng)學(xué)生綜合設(shè)計(jì)能力和創(chuàng)新能力的課題,因此本文將“基于區(qū)塊鏈的電子證件系統(tǒng)”設(shè)計(jì)為綜合課程設(shè)計(jì)III的課題,并對(duì)該系統(tǒng)使用的核心技術(shù)、設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行了詳細(xì)的介紹,旨在培養(yǎng)學(xué)生使用軟件工程思想,采用區(qū)塊鏈技術(shù)、人臉識(shí)別技術(shù)、加密算法和Android應(yīng)用編程技術(shù)綜合設(shè)計(jì)和實(shí)現(xiàn)一個(gè)完整系統(tǒng)的能力,同時(shí)為學(xué)生的課題執(zhí)行提供實(shí)驗(yàn)指導(dǎo)。

        1 課題背景和研究意義

        在現(xiàn)代社會(huì)中,人們對(duì)身份證、駕駛證、社保卡等諸多證件有著極強(qiáng)的依賴,但隨著社會(huì)的發(fā)展,實(shí)體證件容易丟失、損壞、偽造、不便攜帶,丟失后補(bǔ)辦手續(xù)復(fù)雜、周期長等缺點(diǎn)給人們生活造成了諸多不便。而如今的電子證件系統(tǒng)在安全性上往往不如人意。基于區(qū)塊鏈的電子證件系統(tǒng)融合了當(dāng)今非?;馃岬膮^(qū)塊鏈技術(shù)[1-3]、采用了基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別技術(shù)[4-5]、融合國密SM3算法[6]的區(qū)塊鏈存儲(chǔ)機(jī)制和基于國密SM2、SM4算法[7-10]的HTTPS通信機(jī)制,并使用負(fù)載均衡策略的C/S網(wǎng)絡(luò)架構(gòu)、基于Android平臺(tái)的應(yīng)用層設(shè)計(jì)與實(shí)現(xiàn)了該系統(tǒng),全面培養(yǎng)學(xué)生根據(jù)軟件系統(tǒng)的應(yīng)用場景,選擇合適的開發(fā)環(huán)境、工具與技術(shù)標(biāo)準(zhǔn)進(jìn)行軟件系統(tǒng)的設(shè)計(jì)和開發(fā),培養(yǎng)學(xué)生解決復(fù)雜軟件工程問題的能力和創(chuàng)新意識(shí),符合綜合課程設(shè)計(jì)III的畢業(yè)要求。

        2 系統(tǒng)總體設(shè)計(jì)

        用戶首先進(jìn)行人臉識(shí)別登錄,客戶端將接收到的信息整理發(fā)送到服務(wù)器,由服務(wù)器在區(qū)塊鏈上查找人臉面部信息,確認(rèn)登錄有效。在登錄之后,用戶可以看到上傳成功的證件、正在審核的證件及審核進(jìn)度、認(rèn)證失敗的證件及失敗原因等。用戶可以選擇上傳信息選項(xiàng),在填選完相應(yīng)的證件信息后,終端會(huì)將該信息進(jìn)行加密處理,并上傳到專門的業(yè)務(wù)處理服務(wù)器,服務(wù)器接受這一部分?jǐn)?shù)據(jù)后上報(bào)到公安機(jī)關(guān)(驗(yàn)證第三方)進(jìn)行信息真?zhèn)蔚恼鐒e。對(duì)于確認(rèn)為真實(shí)有效的信息,服務(wù)器將用戶上傳的證件信息私有地址傳送到區(qū)塊鏈上。區(qū)塊鏈服務(wù)器會(huì)將內(nèi)容進(jìn)行SM3加密后存儲(chǔ)到區(qū)塊鏈中。系統(tǒng)的功能架構(gòu)如圖1所示。

        圖1 基于區(qū)塊鏈的電子證件系統(tǒng)功能架構(gòu)圖

        基于區(qū)塊鏈的電子證件系統(tǒng)的功能模塊主要分為人臉識(shí)別管理、證件信息管理、證件信息查看、證件信息在線授權(quán)、用戶信息管理等五大模塊。

        本系統(tǒng)采用客戶端/服務(wù)器(C/S)結(jié)構(gòu),主體分為三個(gè)部分:客戶端、服務(wù)器、認(rèn)證機(jī)構(gòu)??蛻舳酥校脩艨梢赃M(jìn)行證件信息上傳、證件數(shù)據(jù)刪除、證件授權(quán)等功能。服務(wù)器端實(shí)現(xiàn)數(shù)據(jù)管理,包括數(shù)據(jù)處理、調(diào)用、存儲(chǔ)。認(rèn)證機(jī)構(gòu)則保證證件信息有效性,在系統(tǒng)內(nèi)內(nèi)置一個(gè)接口,用于提供到第三方進(jìn)行信息認(rèn)證。系統(tǒng)總體流程圖如圖2所示。

        3 系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

        本系統(tǒng)采用C/S架構(gòu)。傳統(tǒng)C/S架構(gòu)技術(shù)成熟,且比較適合移動(dòng)端應(yīng)用。圖3為系統(tǒng)的網(wǎng)絡(luò)架構(gòu)圖。

        本系統(tǒng)中數(shù)據(jù)備份涉及業(yè)務(wù)服務(wù)器數(shù)據(jù)備份和區(qū)塊鏈服務(wù)器數(shù)據(jù)備份。業(yè)務(wù)服務(wù)器數(shù)據(jù)備份采用熱備同構(gòu)方式,只有主業(yè)務(wù)服務(wù)器接收寫請(qǐng)求,然后由主服務(wù)器負(fù)責(zé)把數(shù)據(jù)同步到兩個(gè)備份服務(wù)器,并保證每過一定時(shí)間進(jìn)行更新,主服務(wù)器采用一對(duì)多的方式進(jìn)行同步,相對(duì)于級(jí)聯(lián)的方式,這種方式在某個(gè)備節(jié)點(diǎn)故障時(shí),不會(huì)影響其他備節(jié)點(diǎn)的同步。

        圖2 系統(tǒng)總體流程圖

        圖3 基于區(qū)塊鏈的個(gè)人電子證件系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖

        對(duì)于區(qū)塊鏈備份,系統(tǒng)采用分布式冷備方式,將區(qū)塊鏈按照一定規(guī)律碎片化后根據(jù)手機(jī)存儲(chǔ)性能將這些碎片數(shù)據(jù)動(dòng)態(tài)分配存儲(chǔ)到不同手機(jī)終端上,在犧牲手機(jī)很小的存儲(chǔ)空間的情況下完整地保存整條區(qū)塊鏈。當(dāng)區(qū)塊鏈所在服務(wù)器發(fā)生故障導(dǎo)致數(shù)據(jù)丟失時(shí)服務(wù)器從各個(gè)終端節(jié)點(diǎn)進(jìn)行數(shù)據(jù)回檔,還原區(qū)塊鏈。

        4 核心技術(shù)設(shè)計(jì)

        為了保障證件信息的安全性,本系統(tǒng)中用戶身份認(rèn)證、信息傳輸加密、證件信息存儲(chǔ)三個(gè)模塊分別采用了人臉識(shí)別技術(shù)、國產(chǎn)加密算法、區(qū)塊鏈技術(shù)三大核心技術(shù)。其中,重點(diǎn)對(duì)區(qū)塊鏈技術(shù)進(jìn)行詳細(xì)闡述。

        4.1 基于國密SM 2、SM 4算法的系統(tǒng)交互設(shè)計(jì)

        為了保障客戶信息不會(huì)因?yàn)榧倜翱蛻舳嘶蚍?wù)器而被盜取,提高系統(tǒng)整體安全性,系統(tǒng)采用基于國密SM2、SM4算法的數(shù)字證書實(shí)現(xiàn)雙向認(rèn)證來實(shí)現(xiàn)兩端認(rèn)證交互。

        4.2 基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別機(jī)制設(shè)計(jì)

        人臉特征具有很強(qiáng)的自身穩(wěn)定性和個(gè)體差異性,是身份驗(yàn)證的理想依據(jù)。利用人臉生物特征進(jìn)行身份對(duì)比是最自然和直接的身份驗(yàn)證方式。本系統(tǒng)中采用基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別機(jī)制對(duì)用戶身份進(jìn)行驗(yàn)證,將人臉識(shí)別問題分為人臉檢測、人臉校正、人臉特征提取和人臉鑒別四個(gè)部分。每個(gè)部分采用相應(yīng)算法實(shí)現(xiàn)。

        4.3 基于區(qū)塊鏈的證件信息存儲(chǔ)設(shè)計(jì)

        對(duì)于認(rèn)證后的證件信息的存儲(chǔ),系統(tǒng)創(chuàng)新性地提出了融合國密SM3算法的區(qū)塊鏈存儲(chǔ)機(jī)制,與傳統(tǒng)的數(shù)據(jù)庫存在數(shù)據(jù)丟失、數(shù)據(jù)泄露的問題相比,區(qū)塊鏈技術(shù)以其去中心化、不可篡改性等特性很好地解決了這一系列問題,保證了證件信息的安全性。

        (1)區(qū)塊鏈

        區(qū)塊鏈本質(zhì)上是一個(gè)對(duì)等網(wǎng)絡(luò)(peer-to-peer)的分布式賬本數(shù)據(jù)庫,英文是Blockchain。比特幣是區(qū)塊鏈的第一個(gè)應(yīng)用,是規(guī)模最大、應(yīng)用范圍最廣的區(qū)塊鏈。目前,關(guān)于區(qū)塊鏈沒有統(tǒng)一的定義,綜合來看,區(qū)塊鏈就是基于區(qū)塊鏈技術(shù)形成的公共數(shù)據(jù)庫(或稱公共賬本)。其中區(qū)塊鏈技術(shù)是指多個(gè)參與方之間基于現(xiàn)代密碼學(xué)、分布式一致性協(xié)議、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)通信技術(shù)和智能合約編程語言組成的數(shù)據(jù)交換、處理和存儲(chǔ)技術(shù)。與此同時(shí),區(qū)塊鏈技術(shù)本身仍在不斷演變和發(fā)展。傳統(tǒng)上,信用機(jī)制是集中的,集中的信任和信用機(jī)制必然導(dǎo)致集中組織成為價(jià)值鏈的核心,容易產(chǎn)生問題。另外,區(qū)塊鏈技術(shù)首先在人類歷史上實(shí)施了分散化的大規(guī)模信貸機(jī)制。區(qū)塊鏈本身實(shí)際上是一系列鏈接的數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊使用散列算法記錄一組樹交易狀態(tài)信息,這確保了每個(gè)塊中的交易數(shù)據(jù)不會(huì)被篡改。

        區(qū)塊鏈的基礎(chǔ)架構(gòu)分為三層,如上圖4所示。

        圖4 區(qū)塊鏈的基礎(chǔ)架構(gòu)

        網(wǎng)絡(luò)層,區(qū)塊鏈?zhǔn)腔贗P通信協(xié)議和P2P網(wǎng)絡(luò)的分布式系統(tǒng),與傳統(tǒng)的集中式系統(tǒng)不同,它不依賴集中式服務(wù)器節(jié)點(diǎn)來轉(zhuǎn)發(fā)消息,而是每一個(gè)節(jié)點(diǎn)參與消息的轉(zhuǎn)發(fā),因此,安全性更高。

        數(shù)據(jù)層,區(qū)塊鏈?zhǔn)且粋€(gè)分布式數(shù)據(jù)庫系統(tǒng),只能追加,不能更改。如果它是一個(gè)開放的區(qū)塊鏈,即一個(gè)公共鏈,那么這個(gè)賬本可以被任何地方的任何人查詢,完全透明。區(qū)塊鏈網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)通過使用共識(shí)算法來保持一致性的賬本數(shù)據(jù)庫。同時(shí),使用加密簽名和散列算法來確保數(shù)據(jù)庫不能被篡改,不可偽造和可跟蹤。作為比特幣系統(tǒng)的設(shè)計(jì)者,中本聰巧妙地在系統(tǒng)設(shè)計(jì)中增加了一種經(jīng)濟(jì)激勵(lì)的PoW(工作量證明)機(jī)制,即使擁有網(wǎng)絡(luò)計(jì)算能力51%以上的人也不會(huì)對(duì)網(wǎng)絡(luò)發(fā)起攻擊,因?yàn)檫@樣會(huì)損害他們自己的利益。因此,比特幣系統(tǒng)自推出以來連續(xù)運(yùn)行了七年多。

        應(yīng)用層,可以使用區(qū)塊鏈,而不是傳統(tǒng)的注冊和清算系統(tǒng)。傳統(tǒng)銀行在維護(hù)賬簿結(jié)算和清算支付交易方面的結(jié)構(gòu)過于復(fù)雜,維護(hù)成本過高。就應(yīng)用而言,區(qū)塊鏈平臺(tái)可為用戶編寫智能合約提供編程環(huán)境。智能合約可以把業(yè)務(wù)規(guī)則轉(zhuǎn)化成在區(qū)塊鏈平臺(tái)自動(dòng)執(zhí)行的合約,不依賴可信任的第三方就可以被執(zhí)行,也可以不被人為干預(yù)。從理論上講,一旦部署完成,履行合同的條件一旦完成,將自動(dòng)執(zhí)行。區(qū)塊鏈為執(zhí)行結(jié)果提供了公開檢查的便利,合同具有公平性和透明度。

        (2)總體構(gòu)思

        考慮到本系統(tǒng)中區(qū)塊鏈[11-14]實(shí)則是由不同的區(qū)塊鏈接起來的,所以最重要的是設(shè)計(jì)好Block(區(qū)塊),然后使用STL中的順序性容器list來進(jìn)行二次包裝構(gòu)成區(qū)塊鏈。這里借鑒了如圖5所示的結(jié)構(gòu)。

        圖5 區(qū)塊結(jié)構(gòu)

        (3)關(guān)鍵類和關(guān)鍵函數(shù)

        本系統(tǒng)設(shè)計(jì)了三個(gè)關(guān)鍵類分別是Person類、Block類、TreeNode類。Person類是用來存儲(chǔ)用戶的具體信息的類,包含名字、電話號(hào)碼、密保問題、出生信息、郵箱信息、居住地址、面部信息和一個(gè)獨(dú)一無二的ID。在Person類中,為了拓展性的需要和格式的可控,更為了保證魯棒性,上述成員變量都使用string來進(jìn)行實(shí)現(xiàn),面部信息的拓展則使用STL的vector來進(jìn)行存儲(chǔ),同時(shí)使用一個(gè)const int_PersonQuestion Number來控制密保問題的數(shù)量,初步暫定為3個(gè)。

        在本系統(tǒng)中設(shè)計(jì)Block類為區(qū)塊類,用來存儲(chǔ)區(qū)塊相 關(guān) 信 息 ,有 Block(void)、InsertInfo(Person)、GetInfo(string)三個(gè)關(guān)鍵函數(shù)。Block(void)是Block類的構(gòu)造函數(shù),用來生成新區(qū)塊的同時(shí)對(duì)這個(gè)區(qū)塊進(jìn)行相關(guān)的初始化的工作,包括制定區(qū)塊的大小和設(shè)置該區(qū)塊的初始哈希值等。GetInfo(string)返回值為vector,作用是從區(qū)塊的索引表中查詢某個(gè)人的所有相關(guān)信息,存儲(chǔ)在一個(gè)vector中并返回。TreeNode類是哈希樹類,用來管理對(duì)哈希樹的相關(guān)操作,被包含在Block類中。InsertIn?fo(Person)函數(shù)返回值為void,用來將某個(gè)人的相關(guān)信息插入到區(qū)塊的尾部,流程圖如圖6所示。

        圖6 信息插入?yún)^(qū)塊流程圖

        (4)電子證件系統(tǒng)中哈希樹設(shè)計(jì)與分析

        ①哈希樹的基本原理

        與傳統(tǒng)的區(qū)塊鏈技術(shù)使用SHA256算法對(duì)信息實(shí)現(xiàn)定長輸出不同,本系統(tǒng)采用國密SM3算法對(duì)證件信息進(jìn)行轉(zhuǎn)換輸出定長Hash值來構(gòu)建這個(gè)HashTree,如圖7所示。

        HashTree采用類似于SegmentTree的方法來實(shí)現(xiàn),考慮靜態(tài)SegmentTree的建立,可以在nlog(n)的時(shí)間內(nèi)建立整棵SegmentTree,但是靜態(tài)算法只能對(duì)定長的數(shù)組建立,考慮到內(nèi)存的限制和日后使用的動(dòng)態(tài)性,不可能在每次Modify后重構(gòu)整棵HashTree,所以此處考慮利用二進(jìn)制分組的方法來重建整棵HashTree,即重構(gòu)HashTree的時(shí)間復(fù)雜度為nlog2(n),每當(dāng)大小超過2n之后就重構(gòu)整棵HashTree。

        圖7 證件信息轉(zhuǎn)換為哈希值

        ②個(gè)人電子證件系統(tǒng)哈希樹的實(shí)現(xiàn)

        系統(tǒng)使用函數(shù)Construct(int,int,TreeNode*)遞歸的構(gòu)造區(qū)間范圍在[l,r]的哈希樹,并將根指針存儲(chǔ)在帶入的參數(shù)中。之后考慮HashTree建立起來后,對(duì)于某一個(gè)點(diǎn)的Modify操作:每次直接在HashTree上二分即可找到對(duì)應(yīng)的LeafNode,并將LeafNode上的HashValue更新為一個(gè)新的值,同時(shí)在回溯的時(shí)候?qū)τ贖ashTree上的每一個(gè)可能被改變的結(jié)點(diǎn),根據(jù)其左右兒子的HashValue來重新計(jì)算新的HashValue。系統(tǒng)用Delete(TreeNode*root)函數(shù)來遞歸的刪除以root為根的哈希樹,該函數(shù)返回值類型為void。GetHashValue(void)函數(shù)用來返回某個(gè)哈希樹節(jié)點(diǎn)上的SM3密文,返回值類型為string。

        (5)個(gè)人電子證件系統(tǒng)中國密SM3摘要算法的研究

        在把證件信息轉(zhuǎn)換為Hash值時(shí),系統(tǒng)采用的是國密SM3算法。SM3密碼雜湊算法采用Merkle-Dam?gard結(jié)構(gòu),消息分組512比特,輸出雜湊值256比特。SM3算法的壓縮函數(shù)與SHA256的壓縮函數(shù)具有相似的結(jié)構(gòu),但SM3算法壓縮函數(shù)的結(jié)構(gòu)和消息擴(kuò)展過程的設(shè)計(jì)更加復(fù)雜,例如壓縮函數(shù)的每一輪都使用2個(gè)消息字,消息拓展過程的每一輪都使用5個(gè)消息字等。

        5 核心技術(shù)實(shí)現(xiàn)

        下面重點(diǎn)介紹基于區(qū)塊鏈的證件信息存儲(chǔ)技術(shù)實(shí)現(xiàn)部分。

        5.1 基于區(qū)塊鏈的證件信息存儲(chǔ)實(shí)現(xiàn)

        首先為了更好地管理用戶信息,系統(tǒng)利用C++的面對(duì)對(duì)象的思想,創(chuàng)建了一個(gè)Peron類來實(shí)現(xiàn),在類中定義了許多與用戶信息相關(guān)的數(shù)據(jù)成員,而相關(guān)的數(shù)據(jù)成員的定義如下所示:

        string Name;//名字

        string PhoneNumber;//電話號(hào)碼

        string QuestionAnswer[__PersonQuestionNumber];//密保問題

        string BornInformation;//出生信息

        string Email;//郵箱信息

        string LiveAdress;//居住地址

        vectorPhotoInfo;//面部信息,用vector+string來存儲(chǔ),方便拓展

        int ID;//每個(gè)人的id

        除此之外系統(tǒng)定義了Set和Get方法來實(shí)現(xiàn)用戶數(shù)據(jù)成員的賦值與獲取。之后便是區(qū)塊鏈技術(shù)的關(guān)鍵類Block類,這個(gè)類能夠?qū)崿F(xiàn)區(qū)塊的構(gòu)造和相關(guān)信息的處理。對(duì)于Block類,本文介紹幾個(gè)關(guān)鍵的成員函數(shù)。Block()是類的構(gòu)造函數(shù),用來生成新區(qū)塊的同時(shí)對(duì)這個(gè)區(qū)塊進(jìn)行初始化,具體代碼如下:

        Block(){

        srand(time(0));

        LimitSize=rand()%9+8;

        mxsize=4;

        RandomNumber=rand();//Create Random number tree=NULL;

        tree->Construct(0,(1<

        }

        從這個(gè)構(gòu)造函數(shù)中可以發(fā)現(xiàn),在初始化LimitSize和RandomNumber這兩個(gè)數(shù)據(jù)成員時(shí)用的是rand()函數(shù),可見隨機(jī)性強(qiáng),安全性也有所提高。Block中定義了InsertInfo(Person Add)是關(guān)鍵成員函數(shù),用于將被認(rèn)證后的用戶的證件信息插入?yún)^(qū)塊之中,具體代碼如下所示:

        void Block::InsertInfo(Person Add){

        if(List.size()+1>(1<

        tree->Delete(tree);

        tree=NULL;

        ++mxsize;

        tree->Construct(0,(1<

        int cur=0;

        for(auto it:List)Modify(cur++,it.GetUnionInfo

        ());}

        List.push_back(Add);

        Map[Add.GetName()].emplace_back(Add);

        Modify(List.size()-1,Add.GetUnionInfo());

        }

        系統(tǒng)的Block中用了STL中的順序性容器list來進(jìn)行二次包裝構(gòu)成區(qū)塊鏈,這一點(diǎn)可以從代碼中直接看出來,同時(shí)從代碼中可以發(fā)現(xiàn)List.push_back(Add),從這語句中可以了解到系統(tǒng)的證書信息是插入到區(qū)塊的尾部。

        SearchInfo(Preson Ax)函數(shù)是用來查詢用戶信息是否已經(jīng)存在,存在返回True,不存在返回False。具體代碼如下所示:

        bool Block::SearchInfo(Person Ax){

        for(auto it:List)

        if(it==Ax)

        return true;

        return false;

        }

        Block類中還有一個(gè)關(guān)鍵函數(shù)就是GetInfo(string Name)函數(shù),該方法主要作用是從區(qū)塊的索引表中查詢某個(gè)人的所有相關(guān)信息,并存儲(chǔ)在vector中返回,具體實(shí)現(xiàn)代碼如下:

        vectorBlock::GetInfo(string Name){

        return Map[Name];

        }

        事實(shí)上在實(shí)現(xiàn)Block類之前系統(tǒng)還需要先用于實(shí)現(xiàn)存儲(chǔ)證件信息的哈希樹類TreeNode類。而TreeNo?de類的關(guān)鍵方法Construct(int l,int r,Block::TreeNode*ptr)用于遞歸的構(gòu)造區(qū)間范圍在[1,r]的哈希樹,并將根指針存儲(chǔ)在帶入的參數(shù)中,具體實(shí)現(xiàn)代碼如下所示:void Block::TreeNode::Construct(int l,int r,Block::TreeNode*ptr){

        if(ptr==NULL){

        ptr=new TreeNode(l,r);sm3_starts(&ptr->ctx);}

        if(l

        int mid=l+r>>1;ptr->lft=new TreeNode(l,mid);

        ptr->rht=new TreeNode(mid+1,r);

        Construct(l,mid,ptr->lft);Construct(mid+1,r,ptr->rht);}

        }

        5.2 SM 3算法實(shí)現(xiàn)

        最后,在這一部分將會(huì)簡單介紹SM3算法,SM3雜湊算法能夠安全的對(duì)數(shù)據(jù)進(jìn)行摘要處理,適用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證、消息認(rèn)證碼的生成與驗(yàn)證以及隨機(jī)數(shù)的生成,可滿足多種密碼應(yīng)用的安全需求。而系統(tǒng)中國密SM3算法是為了將證件信息轉(zhuǎn)換為哈希樹中的哈希值。國密SM3算法采用C語言實(shí)現(xiàn),關(guān)鍵函數(shù)下表1所示。

        6 結(jié)語

        最后經(jīng)實(shí)驗(yàn)仿真和實(shí)際測試,本系統(tǒng)能成功實(shí)現(xiàn)賬號(hào)的注冊、登錄,上傳、刪除個(gè)人證件等主要功能,并且服務(wù)器能及時(shí)進(jìn)行區(qū)塊鏈數(shù)據(jù)恢復(fù)。人臉識(shí)別的登錄機(jī)制讓用戶信息更加安全。能夠部署到手機(jī)上的客戶端使得系統(tǒng)的使用更為便捷。該綜合設(shè)計(jì)課題能夠充分培養(yǎng)學(xué)生使用區(qū)塊鏈技術(shù)、加密技術(shù)等多方面的技術(shù)創(chuàng)新性的綜合設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的能力。

        表1 國密SM3算法關(guān)鍵函數(shù)

        猜你喜歡
        證件哈希課程設(shè)計(jì)
        因應(yīng)聘證件引發(fā)的勞動(dòng)糾紛
        龍鳳元素系列課程設(shè)計(jì)
        學(xué)院成功舉辦2017年伊朗出入境證件識(shí)別培訓(xùn)班
        基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
        基于Articulate Storyline的微課程設(shè)計(jì)與開發(fā)
        基于維度分解的哈希多維快速流分類算法
        基于自動(dòng)化系統(tǒng)的PLC課程設(shè)計(jì)
        基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
        開放大學(xué)課程設(shè)計(jì)與資源開發(fā)
        一種基于Bigram二級(jí)哈希的中文索引結(jié)構(gòu)
        2021年性爱喷水视频| 国产精品天干天干综合网| 激情伊人五月天久久综合| 18分钟处破好疼哭视频在线观看 | 国产一区亚洲一区二区| 午夜免费观看日韩一级片| 亚洲国产日韩a在线乱码| 日韩精品区一区二区三vr| 国产亚洲精品bt天堂精选| 中文字幕AⅤ人妻一区二区 | 国产久久久自拍视频在线观看| 精品国产日韩亚洲一区在线| 日韩精品人妻中文字幕有码在线| 狠狠噜狠狠狠狠丁香五月| 99热久久精里都是精品6| 精品性影院一区二区三区内射| 欧美人与动牲交片免费播放| 亚洲国产精品成人一区二区在线| 久久午夜av一区二区三区| 鸭子tv国产在线永久播放| 精精国产xxxx视频在线| 久久精品国产亚洲av桥本有菜| 亚洲图文一区二区三区四区| 亚洲精品国产av成拍| 亚洲丁香婷婷久久一区二区| 亚洲欧洲精品无码av| 久久精品无码一区二区三区不| 综合91在线精品| 图片区小说区激情区偷拍区| 日本饥渴人妻欲求不满| 无人区一码二码三码四码区| 精品亚洲aⅴ在线观看| av黄片免费在线观看| 日本一区二区三级在线| 亚洲熟妇丰满多毛xxxx| 欧美日韩国产码高清综合人成 | 亚洲高清视频在线播放| 一区二区三区日本美女视频| 色综合久久中文字幕综合网| 久久精品国产亚洲av四虎| 午夜国产一区二区三区精品不卡|