本發(fā)明涉及數(shù)據(jù)遷移的技術(shù)領(lǐng)域,特別是涉及數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)方法及裝置。
背景技術(shù):
數(shù)據(jù)遷移是數(shù)據(jù)系統(tǒng)整合中保證系統(tǒng)平滑升級(jí)和更新的關(guān)鍵部分。數(shù)據(jù)遷移過程中很容易發(fā)生數(shù)據(jù)丟失、數(shù)據(jù)被惡意篡改等問題,數(shù)據(jù)的破壞將給整個(gè)項(xiàng)目造成重大的損失。因此數(shù)據(jù)完整性的校驗(yàn)在數(shù)據(jù)遷移過程中顯得尤為重要。
數(shù)據(jù)完整性檢測主要檢測數(shù)據(jù)在遷移過程中是否正確持有原數(shù)據(jù)庫中的數(shù)據(jù),防止數(shù)據(jù)在進(jìn)行遷移過程中發(fā)生丟失、篡改等情況。目前的數(shù)據(jù)完整性檢測方法存在以下不足:
1.采用完整性指示碼的算法,整個(gè)算法過程復(fù)雜程度高,效率低下;
2.沒有充分利用磁盤空間和CPU;
3.只能進(jìn)行單向驗(yàn)證,在數(shù)據(jù)出現(xiàn)完整性問題時(shí),不能定位出現(xiàn)問題的數(shù)據(jù)位置;
4.一般情況下利用MD5進(jìn)行數(shù)據(jù)完整性校驗(yàn)的時(shí)候可能無法避免算法本身的碰撞問題,也不能定位出現(xiàn)問題的具體位置。
因此針對(duì)以上的不足,設(shè)計(jì)了一種基于MD5分組數(shù)據(jù)完整性校驗(yàn)和回溯方法,可以充分利用CPU提高計(jì)算效率,彌補(bǔ)MD5算法本身只能串行計(jì)算的不足,既可以有效解決碰撞問題,又可以回溯異常數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的是提供一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法及裝置,通過采用相同加密方法對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)進(jìn)行MD5加密,加入標(biāo)簽的方式,保證數(shù)據(jù)遷移過程的完整性,且一旦出現(xiàn)問題可以回溯異常數(shù)據(jù)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下的技術(shù)方案。
一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法,包括以下步驟:
對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串;
根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯。
優(yōu)選地,所述對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串,包括以下步驟:
設(shè)定一個(gè)由不同大小的分組因子組成的分組因子集;
將待遷移數(shù)據(jù)文件按分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
為待遷移數(shù)據(jù)的每個(gè)組添加標(biāo)簽;
對(duì)待遷移數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;
將待遷移數(shù)據(jù)加密后所得的加密字符串保存到日志文件。
優(yōu)選地,所述對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串,包括以下步驟:
將遷移后的數(shù)據(jù)按照待遷移數(shù)據(jù)的分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串。
優(yōu)選地,所述對(duì)待遷移數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串,包括以下加密步驟:
對(duì)待遷移數(shù)據(jù)的每個(gè)組的剩余部分進(jìn)行第一次數(shù)據(jù)加密,輸出第一加密字符串;
對(duì)待遷移數(shù)據(jù)的每個(gè)組的定長部分和第一加密字符串連接的字符串進(jìn)行第二次數(shù)據(jù)加密,輸出第二加密字符串;
對(duì)所有組的第二加密字符串連成的字符串進(jìn)行第三次數(shù)據(jù)加密,輸出第三加密字符串。
優(yōu)選地,所述比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串,包括:
將遷移后的數(shù)據(jù)的加密字符串與待遷移數(shù)據(jù)的加密字符串進(jìn)行比對(duì),相同則輸出True,不同則輸出False并將比對(duì)結(jié)果保存在比對(duì)結(jié)果報(bào)告中。
優(yōu)選地,根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯,包括:
找出比對(duì)結(jié)果報(bào)告中比對(duì)結(jié)果為False的組;
根據(jù)比對(duì)結(jié)果為False的組的定長部分及標(biāo)簽,定位到待遷移數(shù)據(jù)中相應(yīng)的數(shù)據(jù)的位置;
對(duì)待遷移數(shù)據(jù)中為False的組的數(shù)據(jù)進(jìn)行修正或重傳。
優(yōu)選地,所述對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密和對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密依據(jù)的加密方式相同。
本發(fā)明還提供了基于上述一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法的一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的裝置,包括:
第一數(shù)據(jù)加密模塊,用于對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
第二數(shù)據(jù)加密模塊,用于對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
比對(duì)模塊,用于比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串;
回溯模塊,用于根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯。
優(yōu)選地,第一數(shù)據(jù)加密模塊進(jìn)一步包括:
分組因子設(shè)定模塊,用于設(shè)定一個(gè)由不同大小的分組因子組成的分組因子集;
第一分組模塊,用于將待遷移數(shù)據(jù)文件按分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
標(biāo)簽?zāi)K,用于為不同的組添加不同的標(biāo)簽;
第一數(shù)據(jù)加密子模塊,用于對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;
日志模塊,用于將待遷移數(shù)據(jù)加密后所得的加密字符串保存到日志文件。
優(yōu)選地,第二數(shù)據(jù)加密模塊進(jìn)一步包括:
第二分組模塊,用于將遷移后的數(shù)據(jù)按照待遷移數(shù)據(jù)的分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
第二數(shù)據(jù)加密子模塊,用于對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
1.通過對(duì)待遷移數(shù)據(jù)按照不同規(guī)則進(jìn)行數(shù)據(jù)加密,解決MD5算法的碰撞問題;
2.通過將待遷移數(shù)據(jù)分組,在分組中添加標(biāo)簽,在數(shù)據(jù)出現(xiàn)問題時(shí),可以準(zhǔn)確定位出現(xiàn)問題的數(shù)據(jù)位置,提升異常數(shù)據(jù)處理效率;
3.通過采用并行計(jì)算各分組數(shù)據(jù)的MD5加密字符串,提高空間上的使用率,同時(shí)提升了CPU處理效率。
附圖說明
圖1是本發(fā)明一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法的流程示意圖之一。
圖2是本發(fā)明一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法的流程示意圖之二。
圖3是本發(fā)明一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的裝置的結(jié)構(gòu)示意圖之一。
圖4是本發(fā)明一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的裝置的結(jié)構(gòu)示意圖之二。
具體實(shí)施方式
為了便于理解,對(duì)本發(fā)明中出現(xiàn)的部分名詞作以下解釋說明:
MD5:Message-Digest Algorithm 5,消息-摘要算法5,為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。
實(shí)施例1
如圖1所示,本發(fā)明的一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法,包括以下步驟:
步驟S101,對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
步驟S102,對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;
步驟S103,比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串;
步驟S104,根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯。
實(shí)施例2
如圖2所示,本發(fā)明的另一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的方法,包括以下步驟:
步驟S201,設(shè)定一個(gè)由不同大小的分組因子組成的分組因子集;
步驟S202,將待遷移數(shù)據(jù)文件按分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
步驟S203,為待遷移數(shù)據(jù)的每個(gè)組添加標(biāo)簽;
步驟S204,對(duì)待遷移數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;
步驟S205,將待遷移數(shù)據(jù)加密后所得的加密字符串保存到日志文件;
步驟S206,將遷移后的數(shù)據(jù)按照待遷移數(shù)據(jù)的分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;
步驟S207,對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;
步驟S208,將遷移后的數(shù)據(jù)的加密字符串與待遷移數(shù)據(jù)的加密字符串進(jìn)行比對(duì),相同則輸出True,不同則輸出False并將比對(duì)結(jié)果保存在比對(duì)結(jié)果報(bào)告中;
步驟S209,找出比對(duì)結(jié)果報(bào)告中比對(duì)結(jié)果為False的組;
步驟S210,根據(jù)比對(duì)結(jié)果為False的組的定長部分及標(biāo)簽,定位到待遷移數(shù)據(jù)中相應(yīng)的數(shù)據(jù)的位置;
步驟S211,對(duì)待遷移數(shù)據(jù)中為False的組的數(shù)據(jù)進(jìn)行修正或重傳。
其中步驟S204具體包括:
步驟S2041,對(duì)待遷移數(shù)據(jù)的每個(gè)組的剩余部分進(jìn)行第一次數(shù)據(jù)加密,輸出第一加密字符串;
步驟S2042,對(duì)待遷移數(shù)據(jù)的每個(gè)組的定長部分和第一加密字符串連接的字符串進(jìn)行第二次數(shù)據(jù)加密,輸出第二加密字符串;
步驟S2043,對(duì)所有組的第二加密字符串連成的字符串進(jìn)行第三次數(shù)據(jù)加密,輸出第三加密字符串。
其中步驟S207具體包括:
步驟S2071,對(duì)遷移后的數(shù)據(jù)的每個(gè)組的剩余部分進(jìn)行第一次數(shù)據(jù)加密,輸出第一加密字符串;
步驟S2072,對(duì)遷移后的數(shù)據(jù)的每個(gè)組的定長部分和第一加密字符串連接的字符串進(jìn)行第二次數(shù)據(jù)加密,輸出第二加密字符串;
步驟S2073,對(duì)所有組的第二加密字符串連成的字符串進(jìn)行第三次數(shù)據(jù)加密,輸出第三加密字符串。
作為一種可實(shí)施的方式,本實(shí)施例中的分組因子集設(shè)定為{200,300,400}。
作為一種可實(shí)施的方式,本實(shí)施例中待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的每組數(shù)據(jù)的定長部分指定為前100個(gè)字符。
實(shí)施例3
如圖3所示,本發(fā)明的一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的裝置,包括第一數(shù)據(jù)加密模塊301、第二數(shù)據(jù)加密模塊302、比對(duì)模塊303和回溯模塊304,第一數(shù)據(jù)加密模塊301依次連接第二數(shù)據(jù)加密模塊302、比對(duì)模塊303和回溯模塊304。
第一數(shù)據(jù)加密模塊301,用于對(duì)待遷移數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;第二數(shù)據(jù)加密模塊302,用于對(duì)遷移后數(shù)據(jù)進(jìn)行MD5加密,獲取加密字符串;比對(duì)模塊303,用于比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串;回溯模塊304,用于根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯。
實(shí)施例4
如圖4所示,本發(fā)明的另一種數(shù)據(jù)遷移過程中數(shù)據(jù)完整性校驗(yàn)的裝置,包括第一數(shù)據(jù)加密模塊中的分組因子設(shè)定模塊401、第一數(shù)據(jù)加密模塊中的第一分組模塊402、第一數(shù)據(jù)加密模塊中的標(biāo)簽?zāi)K403、第一數(shù)據(jù)加密模塊中的第一數(shù)據(jù)加密子模塊404、第一數(shù)據(jù)加密模塊中的日志模塊405、第二數(shù)據(jù)加密模塊中的第二分組模塊406、第二數(shù)據(jù)加密模塊中的第二數(shù)據(jù)加密子模塊407、比對(duì)模塊408、回溯模塊409,第一數(shù)據(jù)加密模塊中的分組因子設(shè)定模塊401依次連接第一數(shù)據(jù)加密模塊中的第一分組模塊402、第一數(shù)據(jù)加密模塊中的標(biāo)簽?zāi)K403、第一數(shù)據(jù)加密模塊中的第一數(shù)據(jù)加密子模塊404、第一數(shù)據(jù)加密模塊中的日志模塊405、第二數(shù)據(jù)加密模塊中的第二分組模塊406、第二數(shù)據(jù)加密模塊中的第二數(shù)據(jù)加密子模塊407、比對(duì)模塊408、回溯模塊409。
第一數(shù)據(jù)加密模塊中的分組因子設(shè)定模塊401,用于設(shè)定一個(gè)由不同大小的分組因子組成的分組因子集;第一數(shù)據(jù)加密模塊中的第一分組模塊402,用于將待遷移數(shù)據(jù)文件按分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;第一數(shù)據(jù)加密模塊中的標(biāo)簽?zāi)K403,用于為不同的組添加不同的標(biāo)簽;第一數(shù)據(jù)加密模塊中的第一數(shù)據(jù)加密子模塊404,用于對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;第一數(shù)據(jù)加密模塊中的日志模塊405,用于將待遷移數(shù)據(jù)加密后所得的加密字符串保存到日志文件;第二數(shù)據(jù)加密模塊中的第二分組模塊406,用于將遷移后的數(shù)據(jù)按照待遷移數(shù)據(jù)的分組因子分成不同大小的組,并將每個(gè)組中的數(shù)據(jù)分割成定長部分和剩余部分;第二數(shù)據(jù)加密模塊中的第二數(shù)據(jù)加密子模塊407,用于對(duì)遷移后的數(shù)據(jù)進(jìn)行三次MD5加密,獲取加密字符串;比對(duì)模塊408,用于比對(duì)待遷移數(shù)據(jù)和遷移后數(shù)據(jù)的加密字符串;回溯模塊409,用于根據(jù)比對(duì)結(jié)果進(jìn)行異常數(shù)據(jù)回溯。
以上所示僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。