本文作者:kaifamei

一種差異式數(shù)據(jù)備份方法及裝置與流程

更新時(shí)間:2025-12-28 00:33:17 0條評(píng)論

一種差異式數(shù)據(jù)備份方法及裝置與流程



1.本發(fā)明涉及plc工控軟件技術(shù)領(lǐng)域,特別涉及一種差異式數(shù)據(jù)備份方法及裝置。


背景技術(shù):

2.plceditor軟件是一種plc編程軟件,用于根據(jù)應(yīng)用需求編寫(xiě)plc控制程序,對(duì)plc進(jìn)行配置、編程、調(diào)試、下載、監(jiān)控等操作,配置完成的工程以wcp類型文件進(jìn)行保存。
3.現(xiàn)有的plceditor軟件,例如三菱的gxwork3、匯川的autoshop等plc編程軟件,通常只有在用戶修改當(dāng)前工程后,才會(huì)提示是否保存當(dāng)前所做修改,容易出現(xiàn)文件丟失,對(duì)用戶來(lái)說(shuō)很不方便。


技術(shù)實(shí)現(xiàn)要素:

4.(一)要解決的技術(shù)問(wèn)題
5.為了解決現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明提供一種差異式數(shù)據(jù)備份方法及裝置,能夠?qū)崿F(xiàn)plceditor軟件中待備份文件的自動(dòng)備份,而且備份效率高。
6.(二)技術(shù)方案
7.為了達(dá)到上述目的,本發(fā)明采用一種的技術(shù)方案為:
8.一種差異式數(shù)據(jù)備份方法,包括步驟:
9.s1、獲取待備份文件信息;
10.s2、根據(jù)所述待備份文件信息判斷是否存在相應(yīng)的備份文件,若存在,則執(zhí)行步驟s3,否則,執(zhí)行步驟s4;
11.s3、獲取備份文件,根據(jù)所述待備份文件信息修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并保存;
12.s4、根據(jù)所述待備份文件信息生成新的備份文件,并保存。
13.為了達(dá)到上述目的,本發(fā)明采用另一種的技術(shù)方案為:
14.一種差異式數(shù)據(jù)備份裝置,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
15.s1、獲取待備份文件信息;
16.s2、根據(jù)所述待備份文件信息判斷是否存在相應(yīng)的備份文件,若存在,則執(zhí)行步驟s3,否則,執(zhí)行步驟s4;
17.s3、獲取備份文件,根據(jù)所述待備份文件信息修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并保存;
18.s4、根據(jù)所述待備份文件信息生成新的備份文件,并保存。
19.(三)有益效果
20.本發(fā)明的有益效果在于:通過(guò)獲取待備份文件信息;根據(jù)所述待備份文件信息判斷是否存在相應(yīng)的備份文件,若存在,則獲取備份文件,根據(jù)所述待備份文件信息修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并保存,否則,根據(jù)所述待備
份文件信息生成新的備份文件,并保存,不僅實(shí)現(xiàn)了plceditor軟件中待備份文件的自動(dòng)備份,而且當(dāng)已存在備份文件時(shí),采用差異式更新進(jìn)行備份的方式,提高了備份效率。
附圖說(shuō)明
21.圖1為本發(fā)明實(shí)施例的差異式數(shù)據(jù)備份方法流程圖;
22.圖2為本發(fā)明實(shí)施例的差異式數(shù)據(jù)備份裝置的整體結(jié)構(gòu)示意圖;
23.圖3為本發(fā)明實(shí)施例的加密/解密方法示意圖。
24.【附圖標(biāo)記說(shuō)明】
25.1:差異式數(shù)據(jù)備份裝置;
26.2:存儲(chǔ)器;
27.3:處理器。
具體實(shí)施方式
28.為了更好的解釋本發(fā)明,以便于理解,下面結(jié)合附圖,通過(guò)具體實(shí)施方式,對(duì)本發(fā)明作詳細(xì)描述。
29.實(shí)施例一
30.請(qǐng)參照?qǐng)D1,一種差異式數(shù)據(jù)備份方法,包括步驟:
31.s1、獲取待備份文件信息;
32.其中,待備份文件信息包括文件名、文件內(nèi)容和文件全路徑。
33.s2、根據(jù)所述待備份文件信息判斷是否存在相應(yīng)的備份文件,若存在,則執(zhí)行步驟s3,否則,執(zhí)行步驟s4;
34.在本實(shí)施例中,步驟s2具體為:
35.s21、根據(jù)待備份文件信息解析得到唯一的備份參數(shù),生成相應(yīng)的備份文件路徑;
36.s22、根據(jù)所述備份文件路徑判斷是否存在備份文件,若存在,則執(zhí)行步驟s3,否則,執(zhí)行步驟s4。
37.s3、獲取備份文件,根據(jù)所述待備份文件信息修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并保存;
38.在本實(shí)施例中,步驟s3具體為:
39.獲取備份文件,并解密得到原文件全路徑,判斷原文件全路徑與當(dāng)前待備份文件的全路徑是否匹配,若是,則修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并加密保存。
40.s4、根據(jù)所述待備份文件信息生成新的備份文件,并保存。
41.在本實(shí)施例中,步驟s4具體為:
42.新建空備份文件,生成相應(yīng)的頭部信息,并將所述頭部信息和待備份文件信息填充至所述空備份文件,得到相應(yīng)的備份文件并加密保存。
43.所述備份文件包括頭部信息和備份內(nèi)容;
44.所述頭部信息包括文件名、備份參數(shù)和文件頭;
45.所述文件名用于保存待備份文件的文件全路徑;
46.所述備份參數(shù)為由相應(yīng)待備份文件的文件全路徑生成的唯一的guid;
47.所述文件頭包括重要版本標(biāo)識(shí)位、上一版本標(biāo)識(shí)位、加密文件大小、加密文件距文件頭end的偏移量、解密文件大小、文件數(shù)據(jù)哈希值、當(dāng)前文件的文件名和備注信息。
48.所述備份文件的加密方式采用feistel結(jié)構(gòu)。
49.具體地,在對(duì)備份文件加密時(shí)運(yùn)用feistel加密結(jié)構(gòu),并采用迭代的方式,在每次循環(huán)中,使用加法、移位等操作進(jìn)行加密變換,實(shí)現(xiàn)預(yù)期的擴(kuò)散和混亂的結(jié)果,避免了備份文件被修改,提高了備份文件的安全性。
50.實(shí)施例二
51.本實(shí)施例和實(shí)施例一的區(qū)別在于,本實(shí)施例將結(jié)合具體的應(yīng)用場(chǎng)景,進(jìn)一步說(shuō)明上述差異式數(shù)據(jù)備份方法是如何實(shí)現(xiàn)的:
52.1、獲取待備份文件信息,所述待備份文件信息包括文件名、文件內(nèi)容和文件全路徑。
53.2.1、根據(jù)待備份文件信息的文件內(nèi)容解析得到唯一的備份參數(shù),生成相應(yīng)的備份文件路徑;
54.2.2、根據(jù)所述備份文件路徑判斷是否存在備份文件,若存在,則執(zhí)行步驟3,否則,執(zhí)行步驟4。
55.3、獲取備份文件,并解密得到原文件全路徑,判斷原文件全路徑與當(dāng)前待備份文件的全路徑是否匹配,若是,則修改所述備份文件的頭部信息,差異式更新所述備份文件的文件內(nèi)容,并采用feistel結(jié)構(gòu)加密保存。
56.4、新建空備份文件,生成相應(yīng)的頭部信息,并將所述頭部信息和待備份文件信息填充至所述空備份文件,得到相應(yīng)的備份文件并采用feistel結(jié)構(gòu)加密保存。
57.所述備份文件包括頭部信息和備份內(nèi)容;
58.所述頭部信息包括文件名、備份參數(shù)和文件頭;
59.所述文件名用于保存待備份文件的文件全路徑;
60.所述備份參數(shù)為由相應(yīng)待備份文件的文件全路徑生成的唯一的guid;
61.所述文件頭包括重要版本標(biāo)識(shí)位、上一版本標(biāo)識(shí)位、加密文件大小、加密文件距文件頭end的偏移量、解密文件大小、文件數(shù)據(jù)哈希值、當(dāng)前文件的文件名和備注信息。
62.其中,重要版本標(biāo)志位:4個(gè)字節(jié),由用戶在備份列表中勾選,0為非重要版本,1為重要版本;
63.上一版本標(biāo)志位:4個(gè)字節(jié),0x01上一版本,0x10目標(biāo)版本,用于備份文件之間的聯(lián)系;
64.加密文件大小:待備份文件的文件大小;
65.加密文件距文件頭end的偏移量:備份的文件數(shù)據(jù)在備份文件中的位置,未固定大小的參數(shù)導(dǎo)致文件頭部長(zhǎng)度不固定,用于獲取真實(shí)文件數(shù)據(jù)的起始位置;
66.解密文件大小:加密前的文件大小
67.文件數(shù)據(jù)哈希值:固定16位大小,通過(guò)文件真實(shí)數(shù)據(jù),計(jì)算得出的hash值,用于判定數(shù)據(jù)內(nèi)容是否發(fā)生變動(dòng);
68.當(dāng)前文件的文件名:16位大小,由當(dāng)前時(shí)間生成,%y%m%d%h%m%s,用于備份文件排序。
69.備注信息,由用戶填寫(xiě),可為空。
70.5、與上一版本備份文件進(jìn)行對(duì)比,對(duì)比方式采用hdiffpatch庫(kù),若文件內(nèi)容一致則不進(jìn)行備份,否則,通過(guò)差異式更新生成對(duì)應(yīng)的.bak文件。
71.6、備份文件可采用zlib壓縮格式存儲(chǔ)。
72.7、可支持的最大備份數(shù)為10,同時(shí)支持用戶自定義文件最大備份數(shù)。
73.8、當(dāng)前備份數(shù)為n時(shí),總備份空間為2*n,即實(shí)際上可追加的備份數(shù)為2n,允許查看的備份數(shù)僅為最近n份。
74.9、當(dāng)實(shí)際總備份數(shù)達(dá)到2n后,一次性搬移(n+1)~2n區(qū)域內(nèi)的文件至0~n的區(qū)域,減少文件的搬移次數(shù)。
75.備份文件加密過(guò)程如下:
76.1、以3個(gè)數(shù)為一組,通過(guò)左右兩個(gè)數(shù)加密得到中間的數(shù),即通過(guò)v[n-1]和v[n+1]進(jìn)行加密得到v[n],通過(guò)v[0]和v[2]加密得到v[1]。
[0077]
2、指定y,z,sum為32位無(wú)符號(hào)整數(shù),指定p,rounds,e為無(wú)符號(hào)整數(shù),指定spec=0x61c88647,mx執(zhí)行函數(shù):
[0078][0079]
spec:該算法特征值,不影響算法的使用。
[0080]
n:該算法明文數(shù)組長(zhǎng)度,和圖3中的x對(duì)應(yīng)。
[0081]
key:該算法明文數(shù)組,和圖3中的k對(duì)應(yīng),為加解密密鑰,由4個(gè)32位無(wú)符號(hào)整數(shù)組成。
[0082]
rounds:該算法進(jìn)行加密的輪數(shù)。
[0083]
sum:z進(jìn)行復(fù)雜計(jì)算后的中間值。
[0084]
e:計(jì)算的中間值。
[0085]
p:明文的索引。
[0086]
z:v[n]。當(dāng)指針向后移動(dòng),z為v[n+1]。
[0087]
y:z的后一個(gè)元素。
[0088]
v:該算法需要加密的源數(shù)據(jù)。
[0089]
3、rounds=6+52/n,sum=0,z=v[n-1],重復(fù)執(zhí)行“sum+=spec,e=(sum》》2) amp;3;當(dāng)0≤p<n-1時(shí),循環(huán)計(jì)算

y=v[p+1],z=v[p]+=mx’;y=v[0],z=v[n-1]+=mx”,直至
??
rounds《0。
[0090]
rounds=6+52/n:固定,得出循環(huán)輪數(shù)。
[0091]
sum=0:sum賦初值。
[0092]
z=v[n-1]:z賦初值。
[0093]
sum+=spec:每次進(jìn)行疊加。
[0094]
e=(sum》》2) amp;3:固定運(yùn)算。
[0095]
y=v[p+1]:明文數(shù)組中的一位賦值給y。
[0096]
z=v[p]+=mx:對(duì)本次的明文元素加密。
[0097]
y=v[0]:重新賦予初值。
[0098]
z=v[n-1]+=mx:將結(jié)果與原本數(shù)據(jù)相加得到最終密文。
[0099]
備份文件解密
[0100]
1、以3個(gè)數(shù)為一組,通過(guò)中間的數(shù)解密得到左右兩個(gè)數(shù),即通過(guò)v[n]進(jìn)行解密得到
v[n-1]和v[n+1],通過(guò)v[1]解密得到v[0]和v[2]。
[0101]
2、指定y,z,sum為32位無(wú)符號(hào)整數(shù),指定p,rounds,e為無(wú)符號(hào)整數(shù),指定spec=0x61c88647,mx執(zhí)行函數(shù):
[0102][0103]
spec:該算法特征值,不影響算法的使用。
[0104]
n:該算法明文數(shù)組長(zhǎng)度,和圖3中的x對(duì)應(yīng)。
[0105]
key:該算法明文數(shù)組,和圖3中的k對(duì)應(yīng),為加解密密鑰,由4個(gè)32位無(wú)符號(hào)整數(shù)組成。
[0106]
rounds:該算法進(jìn)行解密的輪數(shù)。
[0107]
sum:z進(jìn)行復(fù)雜計(jì)算后的中間值。
[0108]
e:計(jì)算的中間值。
[0109]
p:密文的索引。
[0110]
z:v[n]。當(dāng)指針向前移動(dòng),z為v[n-1]。
[0111]
y:是z的前一個(gè)元素。
[0112]
v:該算法需要解密的源數(shù)據(jù)。
[0113]
3、rounds=6+52/n,sum-=spec,y=v[0],重復(fù)執(zhí)行“e=(sum》》2) amp;3,當(dāng)0《p≤n-1時(shí),循環(huán)計(jì)算

z=v[p-1],y=v[p]-=mx’;z=v[n-1],y=v[0]-=mx,”,直至
??
rounds《0。
[0114]
rounds=6+52/n:固定,得出循環(huán)輪數(shù)。
[0115]
sum-=spec:每次進(jìn)行遞減。
[0116]
y=v[0]:賦予初值。
[0117]
e=(sum》》2) amp;3:固定運(yùn)算。
[0118]
z=v[p-1]:明文數(shù)組中的一位賦值給z。
[0119]
y=v[p]-=mx:對(duì)本次的密文元素解密。
[0120]
z=v[n-1]:重新賦予新值。
[0121]
y=v[0]-=mx:將結(jié)果與原本數(shù)據(jù)相減得到原明文。
[0122]
本發(fā)明包括定時(shí)保存和自動(dòng)備份兩部分。其中定時(shí)保存指的是在文件的打開(kāi)期間內(nèi),經(jīng)過(guò)一定的時(shí)間間隔,針對(duì)用戶的進(jìn)行保存,防止意外斷電、誤操作或卡系統(tǒng)錯(cuò)誤導(dǎo)致的文件內(nèi)容丟失。
[0123]
自動(dòng)備份,對(duì)編譯成功的文件,保留當(dāng)前版本為bak文件,對(duì)更新的備份文件進(jìn)行文件內(nèi)容比對(duì),若文件內(nèi)容不存在差異性,則保留原有文件為最新文件,避免重復(fù)備份;在備份的基礎(chǔ)上,對(duì)備份文件進(jìn)行特殊加密,避免備份文件被修改,提升文件的安全性;備份方法采用循環(huán)方式,統(tǒng)一搬移的策略,減少搬移次數(shù),有效提高備份效率。對(duì)備份文件,可選擇恢復(fù)到某個(gè)歷史版本。
[0124]
實(shí)施例三
[0125]
請(qǐng)參照?qǐng)D2,一種差異式數(shù)據(jù)備份裝置,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)實(shí)施例一中的各個(gè)步驟。
[0126]
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括
在本發(fā)明的專利保護(hù)范圍內(nèi)。


文章投稿或轉(zhuǎn)載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-11-873-0.html

來(lái)源:專利查詢檢索下載-實(shí)用文體寫(xiě)作網(wǎng)版權(quán)所有,轉(zhuǎn)載請(qǐng)保留出處。本站文章發(fā)布于 2022-11-27 21:16:16

發(fā)表評(píng)論

驗(yàn)證碼:
用戶名: 密碼: 匿名發(fā)表
評(píng)論列表 (有 條評(píng)論
2人圍觀
參與討論