数据更新方法、服务器以及计算机可读存储介质与流程

文档序号:13986129阅读:293来源:国知局

本发明涉及数据处理技术领域,尤其涉及一种数据更新方法、服务器以及计算机可读存储介质。



背景技术:

终端的应用程序在更新数据过程中,需要从服务器中获取全量数据进行更新,在所获取的全量数据中包括了需要更新的新数据,以及不需要更新的旧数据。而在应用程序数据更新过程中,只有新数据是需要更新的,而旧数据是不需要更新的。但是在终端从服务器获取数据过程中,并不会考虑应用程序中哪些数据是需要更新的,哪些数据是不需要更新的,从而导致终端在从服务器获取数据过程中,获取到需要更新的数据和不需要更新的数据,浪费了终端的数据流量。



技术实现要素:

本发明的主要目的在于提供一种数据更新方法、服务器以及计算机可读存储介质,旨在解决现有的终端在从服务器获取更新数据过程中浪费数据流量的技术问题。

为实现上述目的,本发明提供一种数据更新方法,所述数据更新方法包括步骤:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;

拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;

对比所述第一数据块和所述第二数据块,得到增量数据;

将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。

优选地,所述拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块,其中,任一所述第一数据块都有对应的顺序标识;

根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块。

优选地,所述根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块的步骤包括:

在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块;

根据所述目标数据块得到与所述新数据对应的第二数据块,其中,所述第二数据块包括所述目标数据块。

优选地,所述在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块的步骤之后,还包括:

为所述目标数据块添加与内容相同的所述第一数据块相同的顺序标识;

所述根据所述目标数据块得到与所述新数据对应的第二数据块的步骤之后,还包括:

确定所述第二数据块中除所述目标数据块外的新增数据块,以及确定所述新增数据块与所述目标数据块在新数据中的位置关系;

基于所述位置关系,根据所述目标数据块的顺序标识为所述新增数据块添加顺序标识。

优选地,所述计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度将所述旧数据拆分成固定长度的第一数据块;

按照得到所述第一数据块的顺序从前到后为所述第一数据块添加顺序标识。

优选地,所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤之前,还包括:

计算所述第一数据块的哈希值,得到第一哈希值;

计算所述第二数据块的哈希值,得到第二哈希值;

所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤包括:

对比所述第一哈希值和所述第二哈希值,得到增量数据。

优选地,所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤之前,还包括:

按照预设加密算法加密所述增量数据,得到加密后的所述增量数据;

所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤包括:

将加密后的所述增量数据发送给所述终端,以供所述终端根据加密后的所述增量数据更新数据。

优选地,所述当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据的步骤包括:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取所述更新指令中的数据标识;

根据所述数据标识获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据。

此外,为实现上述目的,本发明还提供一种数据更新服务器,所述数据更新服务器包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的数据更新程序,所述数据更新程序被所述处理器执行时实现如上所述的数据更新方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据更新程序,所述数据更新程序被处理器执行时实现如上所述的数据更新方法的步骤。

本发明通过当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;对比所述第一数据块和所述第二数据块,得到增量数据;将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。实现了在终端更新数据过程中,只需要从服务器中获取需要更新的那部分数据,而不需要获取含有需要更新数据的全部数据,减少了终端在更新数据过程中所需的数据流量。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明数据更新方法第一实施例的流程示意图;

图3为本发明实施例中拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块的一种流程示意图;

图4为本发明数据更新方法第二实施例的流程示意图;

图5为本发明数据更新方法第三实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的解决方案主要是:当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;对比所述第一数据块和所述第二数据块,得到增量数据;将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。以解决终端在从服务器获取更新数据过程中浪费数据流量的问题。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。

如图1所示,该数据更新服务器可以包括:处理器1001,例如cpu,网络接口1004,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,数据更新服务器还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。

本领域技术人员可以理解,图1中示出的数据更新服务器结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统以及数据更新程序。其中,操作系统是管理和控制数据更新服务器硬件和软件资源的程序,支持数据更新程序以及其它软件或程序的运行。

在图1所示的数据更新服务器中,网络接口1004用于与终端连接,而处理器1001可以用于调用存储器1005中存储的数据更新程序,并执行以下操作:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;

拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;

对比所述第一数据块和所述第二数据块,得到增量数据;

将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。

进一步地,所述拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块,其中,任一所述第一数据块都有对应的顺序标识;

根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块。

进一步地,所述根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块的步骤包括:

在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块;

根据所述目标数据块得到与所述新数据对应的第二数据块,其中,所述第二数据块包括所述目标数据块。

进一步地,所述在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块的步骤之后,处理器1001还可以用于调用存储器1005中存储的数据更新程序,并执行以下步骤:

为所述目标数据块添加与内容相同的所述第一数据块相同的顺序标识;

所述根据所述目标数据块得到与所述新数据对应的第二数据块的步骤之后,处理器1001还可以用于调用存储器1005中存储的数据更新程序,并执行以下步骤:

确定所述第二数据块中除所述目标数据块外的新增数据块,以及确定所述新增数据块与所述目标数据块在新数据中的位置关系;

基于所述位置关系,根据所述目标数据块的顺序标识为所述新增数据块添加顺序标识。

进一步地,所述计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度将所述旧数据拆分成固定长度的第一数据块;

按照得到所述第一数据块的顺序从前到后为所述第一数据块添加顺序标识。

进一步地,所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤之前,处理器1001还可以用于调用存储器1005中存储的数据更新程序,并执行以下步骤:

计算所述第一数据块的哈希值,得到第一哈希值;

计算所述第二数据块的哈希值,得到第二哈希值;

所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤包括:

对比所述第一哈希值和所述第二哈希值,得到增量数据。

进一步地,所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤之前,处理器1001还可以用于调用存储器1005中存储的数据更新程序,并执行以下步骤:

按照预设加密算法加密所述增量数据,得到加密后的所述增量数据;

所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤包括:

将加密后的所述增量数据发送给所述终端,以供所述终端根据加密后的所述增量数据更新数据。

进一步地,所述当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据的步骤包括:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取所述更新指令中的数据标识;

根据所述数据标识获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据。

基于上述的硬件结构,提出数据更新方法的各个实施例。

参照图2,图2为本发明数据更新方法第一实施例的流程示意图。

在本实施例中,提供了数据更新方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

所述数据更新方法包括:

步骤s10,当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据。

当服务器接收到终端发送的跟新数据的更新指令时,服务器获取与更新指令对应的更新前的旧数据和更新后的新数据。可以理解的是,更新数据的更新指令为更新终端安装的应用程序数据。该更新指令可由终端用户手动触发,也可由终端自动触发。当更新指令是由终端自动触发时,终端会定时检测其安装的应用程序的数据是否需要更新。若检测到应用程序的数据需要更新时,则会自动触发更新指令,将该更新指令发送给服务器。

进一步,步骤s10包括:

步骤a,当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取所述更新指令中的数据标识。

进一步地,当服务器接收到终端发送的更新数据的更新指令时,服务器获取更新指令中的数据标识,通过该数据标识,服务器可知道终端所需要更新的数据具体为哪一个应用程序的数据。可以理解的是,通过该数据标识可以唯一确定终端需要更新的数据。在本实施例中,数据标识可由应用程序包名来表示。在其它实施例中,数据标识也可由其它可唯一表示终端需要更新的数据的信息来表示。

步骤b,根据所述数据标识获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据。

当服务器获取到更新指令中的数据标识时,服务器根据数据标识确定终端需要更新的数据,即更新前的旧数据,并根据数据标识确定与旧数据对应的更新后的新数据。

步骤s20,拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块。

进一步地,参照图3,步骤s20包括:

步骤s21,计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块,其中,任一所述第一数据块都有对应的顺序标识。

当服务器得到新数据和旧数据时,服务器计算旧数据的字符长度,按照旧数据的字符长度拆分旧数据,将拆分所得的旧数据对应的数据块记为第一数据块,并拆分新数据,将拆分新数据所得的数据块记为第二数据块。其中,每一个第一数据块都有对应的顺序标识,通过该顺序标识可确定各个第一数据块在旧数据中的位置。

进一步地,步骤s21包括:

步骤c,计算所述旧数据的字符长度,根据所述字符长度将所述旧数据拆分成固定长度的第一数据块。

步骤d,按照得到所述第一数据块的顺序从前到后为所述第一数据块添加顺序标识。

服务器在获取到旧数据时,计算旧数据的字符长度,根据计算所得的字符长度将旧数据拆分成固定长度的第一数据块,并按照得到第一数据块的顺序从前到后为第一数据块添加顺序标识。在根据字符长度将旧数据拆分成固定长度的第一数据块过程中,可设置固定长度,如可将固定长度设置为3个字符,4个字符,或者6个字符等。在根据字符长度将旧数据拆分成固定长度过程中,若旧数据的字符长度与固定长度存在倍数关系,则拆分所得的每一个第一数据块的长度都为固定长度;若旧数据的字符长度与固定长度不存在倍数关系,则拆分所得的最后一个第一数据块的长度小于固定长度。

如当旧数据为“ab12def768897zyx”,且固定长度为3时,则拆分所得的第一数据块为“ab1”,“2de”,“f76”,“889”,“7zy”和“x”这6个。为拆分所得的第一数据块按照拆分顺序从前到后添加顺序标识为:数据块0:ab1,数据块1:2de,数据块2:f76,数据块3:889,数据块4:7zy,数据块5:x。其中,数据块0的顺序标识为“0”,数据块1的顺序标识为“1”,依此类推。需要说明的是,顺序标识除了用数字表示外,也可以用字母或者其它形式的字符来表示。

步骤s22,根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块。

当得到第一数据块时,服务器将第一数据块与新数据进行对比,根据对比结果拆分新数据,得到与新数据对应的第二数据块。

进一步地,步骤s22包括:

步骤e,在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块。

当得到第一数据块时,服务器将第一数据块与新数据进行对比,以在新数据查找与第一数据块含有相同内容的数据块,将与第一数据块含有相同内容的数据块记为目标数据块。

步骤f,根据所述目标数据块得到与所述新数据对应的第二数据块,其中,所述第二数据块包括所述目标数据块。

当得到目标数据块时,服务器根据目标数据块拆分新数据,得到与新数据对应的第二数据块。具体地,服务器将目标数据块从新数据中抽取出来,作为一部分第二数据块,将新数据中剩下的,被目标数据块间隔开的每一段数据作为剩余的第二数据块。如当新数据为“ab13def768zz897zyx”时,新数据中与第一数据块含有相同的目标数据块有“ab1”、“f76”、“7zy”和“x”,则新数据中剩下的,被目标数据块间隔开的数据块有“3de”和“8zz89”,因此,与新数据对应的第二数据块有“ab1”、“f76”、“7zy”、“x”、“3de”和“8zz89”。

进一步地,数据更新方法还包括:

步骤g,为所述目标数据块添加与内容相同的所述第一数据块相同的顺序标识。

当得到目标数据块后,服务器为目标数据块添加与内容相同的第一数据块相同的顺序标识。如为“ab1”添加顺序标识“0”,为“f76”添加顺序标识“2”,为“7zy”添加顺序标识“4”,以及为“x”添加顺序标识“5”。

步骤h,确定所述第二数据块中除所述目标数据块外的新增数据块,以及确定所述新增数据块与所述目标数据块在新数据中的位置关系。

步骤i,基于所述位置关系,根据所述目标数据块的顺序标识为所述新增数据块添加顺序标识。

当得到第二数据块时,服务器确定第二数据块中除目标数据块外的新增数据块,并确定新增数据块和目标数据块在新数据中的位置关系,基于该位置关系,根据目标数据块的顺序标识为新增数据块添加顺序标识。可以理解的是,当旧数据块对应的第一数据块的顺序标识是连续的数字时,最终得到新数据的第二数据块对应的顺序标识也是连续的数字。如新增数据块为“3de”和“8zz89”。在新数据中,新增数据块“3de”在数据块0和数据块2之间,由此可知,第一数据块中的数据块1对应的“2de”已被新数据中的“3de”替换,因此为新增数据块“3de”添加顺序标识“1”,得到数据块1:3de;新增数据块“8zz89”在数据块2和数据块4之间,则为新增数据块添加顺序标识“3”,得到数据块3:8zz89。

通过为第一数据块和第二数据块添加顺序标识,以便于终端在接收到增量数据时,可以快速知道需要更新数据的具体位置,提高数据更新效率。服务器拆分旧数据的方式可预先与终端协商好,也可以在发送增量数据给终端时,将拆分旧数据拆分方式添加至含有增量数据的数据包中,一起发送给终端,以告知终端服务器拆分旧数据的拆分方式,以便于终端在根据增量数据更新数据过程中可以快速更新数据。

步骤s30,对比所述第一数据块和所述第二数据块,得到增量数据。

当得到第一数据块和第二数据块时,服务器对比第一数据块和第二数据块,确定第二数据块中与第一数据块不同的数据块,第二数据块中与第一数据块不同数据块对应的内容即为增量数据。其中,增量数据以特定的形式表示。如第一数据块为数据块0:ab1、数据块1:2de、数据块2:f76、数据块3:889、数据块4:7zy、数据块5:x;第二数据块为数据块0:ab1、数据块1:3de、数据块2:f76、数据块3:8zz89、数据块4:7zy、数据块5:x,则得到的增量数据可表示为[(0,1),“3de”,(2,1),“8zz89”,(4,2)],其中,(0,1)表示数据块0对应的内容没有更新,且从数据块0开始,到下一个内容没有更新的数据块,只有一个数据块对应的内容没有更新;(2,1)表示数据块2对应的内容没有更新,且从数据块2开始,到下一个内容没有更新的数据块,只有一个数据块对应的内容没有更新;(4,2)表示从数据块4开始,存在两个没有更新内的数据块,即数据块4和数据5对应的内容没有更新;“3de”表示数据块1对应的内容更新为“3de”,“8zz89”表示数据块3对应的内容更新为“8zz89”。

步骤s40,将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。

当服务器得到增量数据后,服务器将增量数据发送给终端。当终端接收到服务器发送的增量数据时,终端根据增量数据更新对应的数据。

本实施例通过当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;对比所述第一数据块和所述第二数据块,得到增量数据;将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。实现了在终端更新数据过程中,只需要从服务器中获取需要更新的那部分数据,而不需要获取含有需要更新数据的全部数据,减少了终端在更新数据过程中所需的数据流量。进一步地,终端从服务器获取的只是增量数据,而不是全量数据(包括更新数据和不需要更新的数据),由于增量数据比全量数据要小,因此提高了终端从服务器中获取数据的速率,提高了终端更新数据的速率。

进一步地,提出本发明数据更新方法第二实施例。

所述数据更新方法第二实施例与所述数据更新方法第一实施例的区别在于,参照图4,数据更新方法还包括:

步骤s50,计算所述第一数据块的哈希值,得到第一哈希值。

步骤s60,计算所述第二数据块的哈希值,得到第二哈希值。

当服务器得到第一数据块时,服务器计算第一数据块的哈希值,得到与第一数据块对应的第一哈希值。当服务器得到第二数据块中,计算第二数据块的哈希值,得到与第二数据块对应的第二哈希值。在本实施例中,可通过与终端预先协商好的哈希算法计算第一数据块和第二数据块对应的哈希值。哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。在本实施例中,哈希算法包括但不限于md5(message-digestalgorithm5,信息-摘要算法5)和sha(securehashalgorithm,安全散列算法)。

其中,哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。哈希表是根据设定的哈希函数和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。在哈希表中,记录在表中的位置和其关键字之间存在着一种确定的关系。如今常用的哈希构造函数的方法有:直接定址法、折叠法、平方取中法、除留余数法和随机乘数法等。下面以随机乘数法为例详细说明哈希构造函数的过程:随机乘数法也称为“乘余取整法”。随机乘数法使用一个随机实数f,其中,0≤f<1,乘积f*k的分数部分在0~1之间,用这个分数部分的值与n(哈希表的长度)相乘,乘积的整数部分就是对应的哈希值,显然这个哈希值落在0~n-1之间。其表达公式为:hash(k)=「n*(f*k%1)」,其中,“f*k%1”表示f*k的小数部分,即f*k%1=f*k-「f*k」。

如对下列关键字值集合采用随机乘数法计算哈希值,其中,随机数f=0.103149002,哈希表长度n=100,所得结果如下所示:

此方法的优点是对n的选择不很关键。通常若地址空间为p位就是选n=2p.knuth对常数f的取法做了仔细的研究,他认为f取任何值都可以,但某些值效果更好。如f=(-1)/2=0.6180329...比较理想。

步骤s30包括:

步骤s31,对比所述第一哈希值和所述第二哈希值,得到增量数据。

当服务器得到第一哈希值和第二哈希值时,对比第一哈希值和第二哈希值,确定第二哈希值中与第一哈希值不同的哈希值,第二哈希值中与第一哈希值不同的哈希值即为增量数据。

进一步地,当终端在得到增量数据时,需要采用对应的哈希算法还原增量数据。

本实施例通过计算第一数据块和第二数据块的哈希值,对第一数据块和第二数据块进行压缩,得到第一数据块和第二数据块对应的哈希值进行对比,提高了得到增量数据的速率。

进一步地,提出本发明数据更新方法第三实施例。

所述数据更新方法第三实施例与所述数据更新方法第一实施例的区别在于,参照图5,数据更新方法还包括:

步骤s70,按照预设加密算法加密所述增量数据,得到加密后的所述增量数据。

当服务器得到增量数据时,服务器采用预设加密算法加密增量数据,得到加密后的增量数据。其中,预设加密算法为预先与终端协商好的加密算法。预设加密算法包括但不限于des(dataencryptionstandard,数据加密标准)、idea(internationaldataencryptionalgorithm,国际数据加密算法)和rsa公钥加密算法。

步骤s40包括:

步骤s41,将加密后的所述增量数据发送给所述终端,以供所述终端根据加密后的所述增量数据更新数据。

当服务器得到加密后的增量数据时,将加密后的增量数据发送给终端。当终端接收到加密后的增量数据时,采用与服务器加密增量数据相应的解密算法解密加密后的增量数据,得到解密后的增量数据,并根据解密后的增量数据更新数据。如当服务器采用des算法加密增量数据时,终端同样采用des算法解密加密后的增量数据;若服务器采用rsa公钥加密增量数据,终端则采用与rsa公钥对应的rsa私钥解密加密后的增量数据。

本实施例通过加密所得的增量数据,将加密后的增量数据发送给终端,提高了终端更新数据过程中的安全性。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据更新程序,所述数据更新程序被处理器执行时实现如下步骤:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据;

拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块;

对比所述第一数据块和所述第二数据块,得到增量数据;

将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据。

进一步地,所述拆分所述旧数据和所述新数据,得到与所述旧数据对应的第一数据块,与所述新数据对应的第二数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块,其中,任一所述第一数据块都有对应的顺序标识;

根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块。

进一步地,所述根据所述第一数据块拆分所述新数据,得到与所述新数据对应的第二数据块的步骤包括:

在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块;

根据所述目标数据块得到与所述新数据对应的第二数据块,其中,所述第二数据块包括所述目标数据块。

进一步地,所述在所述新数据中查找与所述第一数据块含有相同内容的数据块,记为目标数据块的步骤之后,所述数据更新程序被处理器执行时实现如下步骤:

为所述目标数据块添加与内容相同的所述第一数据块相同的顺序标识;

所述根据所述目标数据块得到与所述新数据对应的第二数据块的步骤之后,所述数据更新程序被处理器执行时实现如下步骤:

确定所述第二数据块中除所述目标数据块外的新增数据块,以及确定所述新增数据块与所述目标数据块在新数据中的位置关系;

基于所述位置关系,根据所述目标数据块的顺序标识为所述新增数据块添加顺序标识。

进一步地,所述计算所述旧数据的字符长度,根据所述字符长度拆分所述旧数据,得到与所述旧数据对应的第一数据块的步骤包括:

计算所述旧数据的字符长度,根据所述字符长度将所述旧数据拆分成固定长度的第一数据块;

按照得到所述第一数据块的顺序从前到后为所述第一数据块添加顺序标识。

进一步地,所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤之前,所述数据更新程序被处理器执行时实现如下步骤:

计算所述第一数据块的哈希值,得到第一哈希值;

计算所述第二数据块的哈希值,得到第二哈希值;

所述对比所述第一数据块和所述第二数据块,得到增量数据的步骤包括:

对比所述第一哈希值和所述第二哈希值,得到增量数据。

进一步地,所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤之前,所述数据更新程序被处理器执行时实现如下步骤:

按照预设加密算法加密所述增量数据,得到加密后的所述增量数据;

所述将所述增量数据发送给所述终端,以供所述终端根据所述增量数据更新数据的步骤包括:

将加密后的所述增量数据发送给所述终端,以供所述终端根据加密后的所述增量数据更新数据。

进一步地,所述当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据的步骤包括:

当服务器接收到终端发送的更新数据的更新指令时,所述服务器获取所述更新指令中的数据标识;

根据所述数据标识获取与所述更新指令对应的更新前的旧数据,以及更新后的新数据。

本发明计算机可读存储介质具体实施方式与上述数据更新方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1