一种差异式数据备份方法及装置与流程

文档序号:32350281发布日期:2022-11-26 12:45阅读:104来源:国知局
一种差异式数据备份方法及装置与流程

1.本发明涉及plc工控软件技术领域,特别涉及一种差异式数据备份方法及装置。


背景技术:

2.plceditor软件是一种plc编程软件,用于根据应用需求编写plc控制程序,对plc进行配置、编程、调试、下载、监控等操作,配置完成的工程以wcp类型文件进行保存。
3.现有的plceditor软件,例如三菱的gxwork3、汇川的autoshop等plc编程软件,通常只有在用户修改当前工程后,才会提示是否保存当前所做修改,容易出现文件丢失,对用户来说很不方便。


技术实现要素:

4.(一)要解决的技术问题
5.为了解决现有技术的上述问题,本发明提供一种差异式数据备份方法及装置,能够实现plceditor软件中待备份文件的自动备份,而且备份效率高。
6.(二)技术方案
7.为了达到上述目的,本发明采用一种的技术方案为:
8.一种差异式数据备份方法,包括步骤:
9.s1、获取待备份文件信息;
10.s2、根据所述待备份文件信息判断是否存在相应的备份文件,若存在,则执行步骤s3,否则,执行步骤s4;
11.s3、获取备份文件,根据所述待备份文件信息修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并保存;
12.s4、根据所述待备份文件信息生成新的备份文件,并保存。
13.为了达到上述目的,本发明采用另一种的技术方案为:
14.一种差异式数据备份装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
15.s1、获取待备份文件信息;
16.s2、根据所述待备份文件信息判断是否存在相应的备份文件,若存在,则执行步骤s3,否则,执行步骤s4;
17.s3、获取备份文件,根据所述待备份文件信息修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并保存;
18.s4、根据所述待备份文件信息生成新的备份文件,并保存。
19.(三)有益效果
20.本发明的有益效果在于:通过获取待备份文件信息;根据所述待备份文件信息判断是否存在相应的备份文件,若存在,则获取备份文件,根据所述待备份文件信息修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并保存,否则,根据所述待备
份文件信息生成新的备份文件,并保存,不仅实现了plceditor软件中待备份文件的自动备份,而且当已存在备份文件时,采用差异式更新进行备份的方式,提高了备份效率。
附图说明
21.图1为本发明实施例的差异式数据备份方法流程图;
22.图2为本发明实施例的差异式数据备份装置的整体结构示意图;
23.图3为本发明实施例的加密/解密方法示意图。
24.【附图标记说明】
25.1:差异式数据备份装置;
26.2:存储器;
27.3:处理器。
具体实施方式
28.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
29.实施例一
30.请参照图1,一种差异式数据备份方法,包括步骤:
31.s1、获取待备份文件信息;
32.其中,待备份文件信息包括文件名、文件内容和文件全路径。
33.s2、根据所述待备份文件信息判断是否存在相应的备份文件,若存在,则执行步骤s3,否则,执行步骤s4;
34.在本实施例中,步骤s2具体为:
35.s21、根据待备份文件信息解析得到唯一的备份参数,生成相应的备份文件路径;
36.s22、根据所述备份文件路径判断是否存在备份文件,若存在,则执行步骤s3,否则,执行步骤s4。
37.s3、获取备份文件,根据所述待备份文件信息修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并保存;
38.在本实施例中,步骤s3具体为:
39.获取备份文件,并解密得到原文件全路径,判断原文件全路径与当前待备份文件的全路径是否匹配,若是,则修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并加密保存。
40.s4、根据所述待备份文件信息生成新的备份文件,并保存。
41.在本实施例中,步骤s4具体为:
42.新建空备份文件,生成相应的头部信息,并将所述头部信息和待备份文件信息填充至所述空备份文件,得到相应的备份文件并加密保存。
43.所述备份文件包括头部信息和备份内容;
44.所述头部信息包括文件名、备份参数和文件头;
45.所述文件名用于保存待备份文件的文件全路径;
46.所述备份参数为由相应待备份文件的文件全路径生成的唯一的guid;
47.所述文件头包括重要版本标识位、上一版本标识位、加密文件大小、加密文件距文件头end的偏移量、解密文件大小、文件数据哈希值、当前文件的文件名和备注信息。
48.所述备份文件的加密方式采用feistel结构。
49.具体地,在对备份文件加密时运用feistel加密结构,并采用迭代的方式,在每次循环中,使用加法、移位等操作进行加密变换,实现预期的扩散和混乱的结果,避免了备份文件被修改,提高了备份文件的安全性。
50.实施例二
51.本实施例和实施例一的区别在于,本实施例将结合具体的应用场景,进一步说明上述差异式数据备份方法是如何实现的:
52.1、获取待备份文件信息,所述待备份文件信息包括文件名、文件内容和文件全路径。
53.2.1、根据待备份文件信息的文件内容解析得到唯一的备份参数,生成相应的备份文件路径;
54.2.2、根据所述备份文件路径判断是否存在备份文件,若存在,则执行步骤3,否则,执行步骤4。
55.3、获取备份文件,并解密得到原文件全路径,判断原文件全路径与当前待备份文件的全路径是否匹配,若是,则修改所述备份文件的头部信息,差异式更新所述备份文件的文件内容,并采用feistel结构加密保存。
56.4、新建空备份文件,生成相应的头部信息,并将所述头部信息和待备份文件信息填充至所述空备份文件,得到相应的备份文件并采用feistel结构加密保存。
57.所述备份文件包括头部信息和备份内容;
58.所述头部信息包括文件名、备份参数和文件头;
59.所述文件名用于保存待备份文件的文件全路径;
60.所述备份参数为由相应待备份文件的文件全路径生成的唯一的guid;
61.所述文件头包括重要版本标识位、上一版本标识位、加密文件大小、加密文件距文件头end的偏移量、解密文件大小、文件数据哈希值、当前文件的文件名和备注信息。
62.其中,重要版本标志位:4个字节,由用户在备份列表中勾选,0为非重要版本,1为重要版本;
63.上一版本标志位:4个字节,0x01上一版本,0x10目标版本,用于备份文件之间的联系;
64.加密文件大小:待备份文件的文件大小;
65.加密文件距文件头end的偏移量:备份的文件数据在备份文件中的位置,未固定大小的参数导致文件头部长度不固定,用于获取真实文件数据的起始位置;
66.解密文件大小:加密前的文件大小
67.文件数据哈希值:固定16位大小,通过文件真实数据,计算得出的hash值,用于判定数据内容是否发生变动;
68.当前文件的文件名:16位大小,由当前时间生成,%y%m%d%h%m%s,用于备份文件排序。
69.备注信息,由用户填写,可为空。
70.5、与上一版本备份文件进行对比,对比方式采用hdiffpatch库,若文件内容一致则不进行备份,否则,通过差异式更新生成对应的.bak文件。
71.6、备份文件可采用zlib压缩格式存储。
72.7、可支持的最大备份数为10,同时支持用户自定义文件最大备份数。
73.8、当前备份数为n时,总备份空间为2*n,即实际上可追加的备份数为2n,允许查看的备份数仅为最近n份。
74.9、当实际总备份数达到2n后,一次性搬移(n+1)~2n区域内的文件至0~n的区域,减少文件的搬移次数。
75.备份文件加密过程如下:
76.1、以3个数为一组,通过左右两个数加密得到中间的数,即通过v[n-1]和v[n+1]进行加密得到v[n],通过v[0]和v[2]加密得到v[1]。
[0077]
2、指定y,z,sum为32位无符号整数,指定p,rounds,e为无符号整数,指定spec=0x61c88647,mx执行函数:
[0078][0079]
spec:该算法特征值,不影响算法的使用。
[0080]
n:该算法明文数组长度,和图3中的x对应。
[0081]
key:该算法明文数组,和图3中的k对应,为加解密密钥,由4个32位无符号整数组成。
[0082]
rounds:该算法进行加密的轮数。
[0083]
sum:z进行复杂计算后的中间值。
[0084]
e:计算的中间值。
[0085]
p:明文的索引。
[0086]
z:v[n]。当指针向后移动,z为v[n+1]。
[0087]
y:z的后一个元素。
[0088]
v:该算法需要加密的源数据。
[0089]
3、rounds=6+52/n,sum=0,z=v[n-1],重复执行“sum+=spec,e=(sum》》2)&3;当0≤p<n-1时,循环计算

y=v[p+1],z=v[p]+=mx’;y=v[0],z=v[n-1]+=mx”,直至
‑‑
rounds《0。
[0090]
rounds=6+52/n:固定,得出循环轮数。
[0091]
sum=0:sum赋初值。
[0092]
z=v[n-1]:z赋初值。
[0093]
sum+=spec:每次进行叠加。
[0094]
e=(sum》》2)&3:固定运算。
[0095]
y=v[p+1]:明文数组中的一位赋值给y。
[0096]
z=v[p]+=mx:对本次的明文元素加密。
[0097]
y=v[0]:重新赋予初值。
[0098]
z=v[n-1]+=mx:将结果与原本数据相加得到最终密文。
[0099]
备份文件解密
[0100]
1、以3个数为一组,通过中间的数解密得到左右两个数,即通过v[n]进行解密得到
v[n-1]和v[n+1],通过v[1]解密得到v[0]和v[2]。
[0101]
2、指定y,z,sum为32位无符号整数,指定p,rounds,e为无符号整数,指定spec=0x61c88647,mx执行函数:
[0102][0103]
spec:该算法特征值,不影响算法的使用。
[0104]
n:该算法明文数组长度,和图3中的x对应。
[0105]
key:该算法明文数组,和图3中的k对应,为加解密密钥,由4个32位无符号整数组成。
[0106]
rounds:该算法进行解密的轮数。
[0107]
sum:z进行复杂计算后的中间值。
[0108]
e:计算的中间值。
[0109]
p:密文的索引。
[0110]
z:v[n]。当指针向前移动,z为v[n-1]。
[0111]
y:是z的前一个元素。
[0112]
v:该算法需要解密的源数据。
[0113]
3、rounds=6+52/n,sum-=spec,y=v[0],重复执行“e=(sum》》2)&3,当0《p≤n-1时,循环计算

z=v[p-1],y=v[p]-=mx’;z=v[n-1],y=v[0]-=mx,”,直至
‑‑
rounds《0。
[0114]
rounds=6+52/n:固定,得出循环轮数。
[0115]
sum-=spec:每次进行递减。
[0116]
y=v[0]:赋予初值。
[0117]
e=(sum》》2)&3:固定运算。
[0118]
z=v[p-1]:明文数组中的一位赋值给z。
[0119]
y=v[p]-=mx:对本次的密文元素解密。
[0120]
z=v[n-1]:重新赋予新值。
[0121]
y=v[0]-=mx:将结果与原本数据相减得到原明文。
[0122]
本发明包括定时保存和自动备份两部分。其中定时保存指的是在文件的打开期间内,经过一定的时间间隔,针对用户的进行保存,防止意外断电、误操作或卡系统错误导致的文件内容丢失。
[0123]
自动备份,对编译成功的文件,保留当前版本为bak文件,对更新的备份文件进行文件内容比对,若文件内容不存在差异性,则保留原有文件为最新文件,避免重复备份;在备份的基础上,对备份文件进行特殊加密,避免备份文件被修改,提升文件的安全性;备份方法采用循环方式,统一搬移的策略,减少搬移次数,有效提高备份效率。对备份文件,可选择恢复到某个历史版本。
[0124]
实施例三
[0125]
请参照图2,一种差异式数据备份装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一中的各个步骤。
[0126]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括
在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1