文件校验的方法、装置、电子设备和计算机可读存储介质与流程

文档序号:26884954发布日期:2021-10-09 11:39阅读:152来源:国知局
文件校验的方法、装置、电子设备和计算机可读存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及一种文件校验的方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.文件在传输过程或者处理过程中,有可能被劫持或者因其他原因损坏,因此,需要通过校验的方式来验证文件的完整性。
3.现有技术中,常用的校验方式为通过消息摘要算法第五版(message

digest algorithm 5,md5)来验证文件的完整性,即根据原始文件的整体内容计算得到一个md5,对待校验的文件的整体内容再计算得到一个md5,确定两个md5是否相同,如果两个md5相同,说明待校验的文件和原始文件的内容一致,校验通过;如果两个md5不同,说明待校验的文件和原始文件的内容不一致,校验未通过;例如:在下载和安装游戏安卓应用程序包(android application package,apk)的场景中,在下载完成时,需要对apk进行md5校验,检测下载是否被劫持或者文件损坏,在安装完成时,需要对已安装完成的apk进行md5校验,检测安装是否被劫持。
4.然而,采用现有技术的方法,校验的效率不高。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种文件校验的方法、装置、电子设备和计算机可读存储介质。
6.本公开第一方面提供一种文件校验方法,包括:
7.获取待校验文件和第一校验信息,其中,所述第一校验信息中包含第一校验值,所述第一校验值为源端根据所述待校验文件的源文件的第一目标校验片段生成的,所述第一目标校验片段包括:所述源端按照预设采样方式对所述源文件进行采样得到的至少一个第一采样分段;
8.按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段;
9.生成第二目标校验片段,所述第二目标校验片段包括:所述至少一个第二采样分段;
10.根据校验算法对所述第二目标校验片段的内容进行计算,得到第二校验值;
11.确定所述第二校验值和所述第一校验值相同,所述文件校验通过。
12.可选的,所述第一校验信息中还包括:采样参数的值;
13.所述按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段,包括:
14.从所述第一校验信息中获取所述采样参数的值;
15.根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到
至少一个第二采样分段。
16.可选的,所述第一校验信息中还包括:所述预设采样方式的标识,所述预设采样方式的标识用于标识源端采用的预设采样方式;
17.所述按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段之前,还包括:
18.根据所述预设采样方式的标识,确定所述预设采样方式。
19.可选的,所述按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段,包括:
20.根据文件属性和采样参数的值的对应关系,获取所述待校验文件对应的采样参数的值;
21.根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到至少一个第二采样分段;
22.其中,所述文件属性包括下述至少一个:
23.文件的大小;文件的安全级别;文件的来源。
24.可选的,所述生成第二目标校验片段,包括:
25.按照预设顺序依次读取所述至少一个第二采样分段,生成第二目标校验片段;
26.其中,所述预设顺序包括:
27.根据所述至少一个第二采样分段在所述文件中的分布,按照从文件头到文件尾的顺序;或者,
28.根据所述至少一个第二采样分段在所述文件中的分布,按照从文件尾到文件头的顺序;或者,
29.用户自定义的顺序。
30.可选的,所述至少一个第二采样分段包括:文件头对应的第二采样分段和/或文件尾对应的第二采样分段。
31.可选的,所述采样参数包括:
32.采样段数和第二采样分段大小;或者,
33.第二采样分段大小和采样间隔;或者,
34.划分总段数和采样段数。
35.本公开第二方面提供一种文件校验方法,包括:
36.按照预设采样方式对源文件进行采样,得到至少一个第一采样分段;
37.生成第一目标校验片段,所述第一目标校验片段包括:所述至少一个第一采样分段;
38.根据校验算法对所述第一目标校验片段的内容进行计算,得到第一校验值;
39.向目的端发送所述源文件和第一校验信息,所述第一校验信息中包含所述第一校验值。
40.可选的,所述第一校验信息中还包括:采样参数的值;
41.所述按照第一采样方式对源文件进行采样,得到至少一个第一采样分段,包括:
42.获取采样参数的值;
43.根据所述预设采样方式和所述采样参数的值,对所述源文件进行采样,得到至少
一个第一采样分段,其中,所述第一采样方式中包含所述采样参数。
44.可选的,所述第一校验信息中还包括:所述预设采样方式的标识,其中,所述预设采样方式的标识用于标识所述源端采用的采样方式。
45.可选的,所述获取采样参数的值,包括:
46.根据文件属性和采样参数的值的对应关系,获取所述源文件对应的采样参数的值;
47.或者,从源文件的属性信息中获取所述采样参数的值;
48.其中,文件属性包括下述至少一个:
49.文件的大小;文件的安全级别;文件的来源。
50.可选的,所述生成第一目标校验片段,包括:
51.按照预设顺序依次读取所述至少一个第一采样分段,生成第一目标校验片段;
52.其中,所述预设顺序包括:
53.根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件头到文件尾的顺序;或者,
54.根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件尾到文件头的顺序;或者,
55.用户自定义的顺序。
56.可选的,所述根据所述预设采样方式和所述采样参数的值,对所述源文件进行采样,得到至少一个第一采样分段之前,还包括:
57.根据所述采样参数的值和所述源文件的大小,确定根据所述采样参数采样的第一目标校验片段的大小与所述源文件的大小的比值小于预设阈值。
58.本公开第三方面提供一种文件校验装置,包括:
59.获取模块,用于获取待校验文件和第一校验信息,其中,所述第一校验信息中包含第一校验值,所述第一校验值为源端根据所述待校验文件的源文件的第一目标校验片段生成的,所述第一目标校验片段包括:所述源端按照预设采样方式对所述源文件进行采样得到的至少一个第一采样分段;
60.采样模块,用于按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段;
61.处理模块,用于生成第二目标校验片段,所述第二目标校验片段包括:所述至少一个第二采样分段;
62.所述处理模块,还用于根据校验算法对所述第二目标校验片段的内容进行计算,得到第二校验值;
63.确定所述第二校验值和所述第一校验值相同,所述文件校验通过。
64.可选的,所述第一校验信息中还包括:采样参数的值;
65.所述采样模块具体用于从所述第一校验信息中获取所述采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到至少一个第二采样分段。
66.可选的,所述第一校验信息中还包括:所述预设采样方式的标识,所述预设采样方式的标识用于标识源端采用的预设采样方式;
67.所述采样模块还用于根据所述预设采样方式的标识,确定所述预设采样方式。
68.可选的,所述采样模块具体用于根据文件属性和采样参数的值的对应关系,获取所述待校验文件对应的采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到至少一个第二采样分段;
69.其中,所述文件属性包括下述至少一个:
70.文件的大小;文件的安全级别;文件的来源。
71.可选的,所述处理模块具体用于按照预设顺序依次读取所述至少一个第二采样分段,生成第二目标校验片段;
72.其中,所述预设顺序包括:
73.根据所述至少一个第二采样分段在所述文件中的分布,按照从文件头到文件尾的顺序;或者,
74.根据所述至少一个第二采样分段在所述文件中的分布,按照从文件尾到文件头的顺序;或者,
75.用户自定义的顺序。
76.可选的,所述至少一个第二采样分段包括:文件头对应的第二采样分段和/或文件尾对应的第二采样分段。
77.可选的,所述采样参数包括:
78.采样段数和第二采样分段大小;或者,
79.第二采样分段大小和采样间隔;或者,
80.划分总段数和采样段数。
81.本公开第四方面提供一种文件校验装置,包括:
82.采样模块,用于按照预设采样方式对源文件进行采样,得到至少一个第一采样分段;
83.处理模块,用于生成第一目标校验片段,所述第一目标校验片段包括:所述至少一个第一采样分段;
84.所述处理模块,还用于根据校验算法对所述第一目标校验片段的内容进行计算,得到第一校验值;
85.发送模块,用于向目的端发送所述源文件和第一校验信息,所述第一校验信息中包含所述第一校验值。
86.可选的,所述第一校验信息中还包括:采样参数的值;
87.所述采样模块具体用于获取采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述源文件进行采样,得到至少一个第一采样分段,其中,所述第一采样方式中包含所述采样参数。
88.可选的,所述第一校验信息中还包括:所述预设采样方式的标识,其中,所述预设采样方式的标识用于标识所述源端采用的采样方式。
89.可选的,所述采样模块具体用于根据文件属性和采样参数的值的对应关系,获取所述源文件对应的采样参数的值;
90.或者,从源文件的属性信息中获取所述采样参数的值;
91.其中,文件属性包括下述至少一个:
92.文件的大小;文件的安全级别;文件的来源。
93.可选的,所述处理模块具体用于按照预设顺序依次读取所述至少一个第一采样分段,生成第一目标校验片段;
94.其中,所述预设顺序包括:
95.根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件头到文件尾的顺序;或者,
96.根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件尾到文件头的顺序;或者,
97.用户自定义的顺序。
98.可选的,所述处理模块还用于根据所述采样参数的值和所述源文件的大小,确定根据所述采样参数采样的第一目标校验片段的大小与所述源文件的大小的比值小于预设阈值。
99.本公开第五方面提供一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法的步骤。
100.本公开第六方面提供一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第二方面任一项所述的方法的步骤。
101.本公开第七方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法的步骤。
102.本公开第八方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第二方面任一项所述的方法的步骤。
103.本公开第九方面提供一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面任一项所述的文件校验方法。
104.本公开第十方面提供一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第二方面任一项所述文件校验方法。
105.本公开实施例提供的技术方案与现有技术相比具有如下优点:
106.通过源端对文件进行采样,得到一个或者多个第一采样分段,对得到的一个或者多个第一采样分段形成的第一目标校验片段,根据第一目标校验片段的内容计算得到第一校验值,目的端对待校验文件进行采样,得到一个或者多个第二采样分段,对得到的一个或者多个第二采样分段形成的第二目标校验片段,根据第二目标校验片段的内容计算得到第二校验值,通过对比第一校验值和第二校验值是否相同来确定文件是否被篡改,由于第一目标校验片段或者第二目标校验片段的大小小于整个文件,从而,可以降低计算校验值的计算量,提高校验效率。
附图说明
107.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
108.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
109.图1为本公开提供的一种文件校验方法的流程示意图;
110.图2为本公开提供的一种采样方式示意图;
111.图3为本公开提供的另一种采样方式示意图;
112.图4为本公开提供的再一种采样方式示意图;
113.图5为本公开提供的另一种文件校验方法的流程示意图;
114.图6为本公开提供的一种文件的校验装置的结构示意图;
115.图7为本公开提供的另一种文件的校验装置的结构示意图;
116.图8为本公开提供一种电子设备的结构示意图;
117.图9为本公开提供的另一种电子设备的结构示意图。
具体实施方式
118.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
119.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
120.本公开的技术方案可应用于文件传输的场景中,例如:第一设备向第二设备发送文件的场景,客户端从服务器下载文件的场景(例如,软件下载站、游戏分发平台或论坛数据库等)等。源端欲向目的端发送文件,源端除了向目的端发送文件本身的内容,还会向目的端发送第一校验值,该第一校验值用于目的端确定接收到的文件是否与源端发送的文件一致,以确定文件在传输过程中是否损坏或者被篡改。
121.本公开为了提高文件的校验效率,通过对文件进行采样,得到一个或者多个采样分段,对得到的一个或者多个采样分段形成的目标校验片段计算校验值,由于目标校验片段的大小小于整个文件,从而,可以降低计算校验值的计算量,提高校验效率。
122.下面以几个具体的实施例对本公开的技术方案进行描述。
123.图1为本公开提供的一种文件校验方法的流程示意图,本实施例的方法如下:
124.s101:源端按照预设采样方式对源文件进行采样,得到至少一个第一采样分段。
125.在源端欲主动向目的端发送源文件,或者,源端接收到目的端的下载请求,或者目的端发送的其他获取源文件的请求,源端除了向目的端发送源文件之外,还会向目的端发送第一校验值,本公开中,源端获取第一校验值首先需要对源文件进行采样,得到至少一个第一采样分段。
126.源端可以根据预设采样方式对待发送的源文件进行采样。其中,预设采样方式中包含一个或者多个采样参数。预设采样方式用于指示如何根据采样参数对源文件进行采样。
127.其中,采样参数可以包括不但不限于:
128.一种示例为:采样参数包括:采样段数和采样分段大小,其中,采样段数指总共从
待发送的源文件中采样多少段,采样分段大小指每个采样分段的大小。
129.另一种示例为:采样参数包括:采样分段大小和采样间隔,其中,采样分段大小指每个采样分段的大小,采样间隔指两个采样分段之间的间隔。
130.再一种示例为:采样参数包括:划分总段数和采样段数,划分总段数指将源文件均匀划分为多少段,采样段数指从划分总段数中均匀采样多少段。
131.可选的,上述采样参数的值可以是固定的,即,对所有源文件进行采样采用的采样参数的值都是相同的。
132.例如,采样参数包括:采样段数和采样分段大小,假设,采样段数的值为10,采样分段大小的值的m个字节,采样方式为第一个采样分段从文件头开始,最后一个采样分段从文件尾结束,其余8个采样分段在第一个采样分段和最后一个采样分段之间均匀分布,每个采样分段的大小为m个字节,如图2所示,图2为本公开提供的一种采样方式示意图,阴影部分为采样分段。即对所有的源文件均采样10个分段,每个分段的大小均为m个字节。其中,m为大于等于1的整数。
133.再例如,采样参数包括:采样分段大小和采样间隔,假设,采样分段的大小的值为m个字节,采样间隔为n个字节,采样方式为第一个采样分段从源文件头开始,采样m个字节,每间隔n个字节采样一次,每次采样m个字节,如图3所示,图3为本公开提供的另一种采样方式示意图,阴影部分为采样分段。即,对所有的源文件均从文件头每间隔n个字节采样一次,每个采样分段的大小为m个字节。其中,n为大于等于1的整数。
134.再例如:采样参数包括:划分总段数和采样段数;假设划分总段数为10,采样段数为5;采样方式为:将文件均匀划分为10段,第1段作为第一个采样分段,从10段中均匀采样5段,如图4所示,图4为本公开提供的再一种采样方式示意图,阴影部分为采样分段,源端对于所有的源文件进行采样时,均是将文件均匀划分为10段,第1段作为第一个采样分段,从10段中均匀采样5段。
135.可选的:采样参数的值也可以是不固定的,即,对不同的源文件进行采样采用的采样参数的值可能是不同的。因此,采样前还需要先获取采样参数的值。再根据采样方式和采样参数的值对源文件进行采样,得到至少一个采样分段。
136.其中,采样参数的值可以根据文件属性确定的,文件属性包括但不限于:文件大小、文件的安全级别要求、文件来源(例如,应用程序安装包/游戏安装包的开发者)等。文件属性和采样参数的值之间可以建立对应关系,因此,源端可以根据文件属性和采样参数的值的对应关系,确定源文件的采样参数,该对应关系可以通过对应关系表体现,也可以通过函数关系体现,也可以通过其他映射关系体现。
137.通过建立文件属性和采样参数的值之间的对应关系,对于不同的文件可以采用不同的采样参数的值,可以提高采样的灵活性,更符合用户的需求。
138.采样参数的值也可以作为文件的一项属性信息,源端可以通过查看文件的属性信息获取源文件的采样参数的值。
139.可选的,在s101中,为了进一步地提高校验的可靠性,采样方式可以指示采样分段中包含文件头对应的采样分段和/或文件尾对应的采样分段,由于文件头或者文件尾通常会携带一些重要信息,因此,对文件头或者文件尾进行采样,可以进一步地提高校验的可靠性。例如,预设采样方式可以规定,如果采样段数为1段,对文件头进行采样得到采样分段,
如果采样段数大于或者等于2段,对文件头和文件尾均进行采样,得到文件头对应的采样分段和文件尾对应的采样分段,其余的采样分段均匀分布于文件头和文件尾之间。
140.s102:源端生成第一目标校验片段。
141.将至少一个第一采样分段按照预设的顺序,生成第一目标校验片段。其中,第一目标校验片段种包含至少一个第一采样分段的全部内容。
142.可选的,按照预设顺序依次读取所述至少一个第一采样分段,生成第一目标校验片段。
143.例如:根据至少一个第一采样分段在源文件中的分布,按照从文件头到文件尾的顺序依次读取每个第一采样分段,生成第一目标校验片段。
144.或者,
145.根据至少一个第一采样分段在源文件中的分布,按照从文件尾到文件头的顺序依次读取每个第一采样分段,生成第一目标校验片段。
146.或者,
147.根据用户自定义的顺序依次读取每个第一采样分段,生成第一目标校验片段。
148.s103:源端根据校验算法对第一目标校验片段的内容进行计算,得到第一校验值。
149.其中,校验算法包括但不限于:md5;如果第一目标校验片段的内容发生变化,则对应的第一校验值也会发生变化。
150.s104:源端向目的端发送源文件和第一校验信息。
151.其中,第一校验信息中包含上述第一校验值。
152.一种可能的实现方式:第一校验信息携带在文件头中,目的端接收到待校验文件之后,通过解析文件头获取到第一校验信息中的第一校验值。
153.另一种可能的实现方式:第一校验信息和源文件作为独立的部分分别发送给目的端,目的端直接获取第一校验信息和待校验文件。
154.s105:目的端获取待校验文件和第一校验信息。
155.其中第一校验信息中包含第一校验值,所述第一校验值为源端根据所述待校验文件的源文件的第一目标校验片段生成的,所述第一目标校验片段包括:所述源端按照预设采样方式对所述源文件进行采样得到的至少一个第一采样分段。
156.s106:目的端按照预设采样方式对待校验文件进行采样,得到至少一个第二采样分段。
157.目的端对待校验文件进行采样所用的采样方式与源端的采样方式相同。
158.其中,采样所需要的采样参数的值,可以是源端和目的端预先约定的,目的端直接采用预先约定的采样参数的值即可。
159.也可以是源端将采样参数的值和第一校验值一起携带在第一校验信息中发送给目的端,目的端通过解析第一校验信息获取采样参数的值。可选的,源端还可以对采样参数的值进行加密处理,将加密处理后的采样参数的值携带在第一校验信息中发送给目的端,相应地,目的端从第一校验信息中获取到加密的采样参数的值,对加密的采样参数得值进行解密获取到采样参数的值,其中,加密算法和解密算法源端和目的端可以预先约定。
160.也可以是目的端根据接收到的文件的属性信息确定的,目的端预先存储属性信息和采样参数的值的对应关系,通过该对应关系获取文件对应的采样参数的值。目的端预先
存储的属性信息和采样参数的值的对应关系与源端存储的对应关系相同。
161.也可以是源端将采样参数的值作为文件的一项属性信息,目的端通过查看文件的属性信息,获取采样参数的值。
162.目的端根据预设采样方式和采样参数的值对待校验文件进行采样,得到至少一个第二采样分段。
163.具体地如何根据采样方式和采样参数的值对待校验文件进行采样,得到至少一个采样分段与源端类似,可以参见s101的描述,此处不再赘述。
164.s107:目的端生成第二目标校验片段。
165.其中,目的端根据至少一个采样分段,生成第二目标校验片段的步骤与源端相同,可参见源端的详细描述,此处不再赘述。
166.s108:目的端根据校验算法对第二目标校验片段的内容进行计算,得到第二校验值。
167.其中,目的端采用的校验算法与源端采用的校验算法相同。
168.s109:目的端确定第二校验值和第一校验值是否相同,若相同,文件校验通过,若不同,文件校验失败。
169.如果第一校验值和第二校验值相同,说明第一目标校验片段和第二目标校验片段的内容相同,说明文件在传输过程中未被篡改,则文件验证通过,如果第一校验值和第二校验值不同,说明第一目标校验片段和第二目标校验片段的内容不同,说明文件在传输过程中被篡改。
170.本实施例,通过源端对文件进行采样,得到一个或者多个第一采样分段,对得到的一个或者多个第一采样分段形成的第一目标校验片段,根据第一目标校验片段的内容计算得到第一校验值,目的端对待校验文件进行采样,得到一个或者多个第二采样分段,对得到的一个或者多个第二采样分段形成的第二目标校验片段,根据第二目标校验片段的内容计算得到第二校验值,通过对比第一校验值和第二校验值是否相同来确定文件是否被篡改,由于第一目标校验片段或者第二目标校验片段的大小小于整个文件,从而,可以降低计算校验值的计算量,提高校验效率。
171.图5为本公开提供的另一种文件校验方法的流程示意图,图5是在图1所示实施例的基础上,源端在第一校验信息中还可以包含源端采用的采样方式的标识,采样方式的标识和采样方式一一对应,可选的,目的端在执行s106之前,还包括:
172.s1060:目的端根据预设采样方式的标识,确定预设采样方式。
173.一种可能的实现方式:确定采样方式的标识是否与目的端设置的预设采样方式的标识相同,如果相同,说明源端采用的采样方式与目的端设置的预设采样方式相同,目的端设置的预设采样方式有效;如果不同,说明源端采用的预设采样方式与目的端设置的预设采样方式不同,目的端设置的预设采样方式无效。
174.另一种可能的实现方式:确定预设采样方式的标识是否与目的端设置的预设采样方式的标识相同或者兼容,如果相同,说明源端采用的预设采样方式与目的端设置的预设采样方式相同,目的端设置的预设采样方式有效;如果不同但是兼容,例如,目的端设置的预设采样方式的标识小于源端采用的预设采样方式的标识,则认为源端采用的预设采样方式与目的端设置的预设采样方式兼容,也可以认为目的端设置的预设采样方式有效。如果
不同且不兼容,则认为目的端设置的预设采样方式无效。例如:预设采样方式的标识包括:第一子标识和第二子标识;如果第一子标识和第二子标识与目的端设置的预设采样方式的第一子标识和第二子标识均相同,说明源端采用的预设采样方式与目的端设置的预设采样方式相同,目的端设置的预设采样方式有效;如果第一子标识与目的端设置的预设采样方式的第一子标识相同,第二子标识与目的端设置的预设采样方式的第二子标识不同,说明源端采用的预设采样方式与目的端设置的预设采样方式不同,但源端采用的预设采样方式兼容目的端设置的预设采样方式,目的端设置的预设采样方式有效。如果第一子标识与目的端设置的预设采样方式的第一子标识不同,第二子标识与目的端设置的预设采样方式的第二子标识无论相同或不同,说明源端采用的预设采样方式与目的端设置的预设采样方式不同,且源端采用的预设采样方式不兼容目的端设置的预设采样方式,目的端设置的预设采样方式无效。其中,第一子标识可以为主版本号,第二子标识可以为副版本号。
175.在确定目的端设置的预设采样方式有效的前提下执行s107。如果目的端设置的采样方式无效,则执行s110。
176.s110:目的端显示报错信息或者预设采样方式更新请求信息。
177.以便于用户及时了解文件处理状态,结束处理,或者更新预设采样方式。
178.本实施例,通过设置预设采样方式的标识,可以更新预设采样方式,使得采样方式更加灵活,更符合用户的需求。
179.在上述各实施例中,第一校验信息的格式包括但不限于如下可能的实现方式:
180.一种可能的实现方式:第一校验信息中包含第一校验值;
181.通过解析第一校验信息,获取第一校验值。根据预设采样方式和采样参数的值对文件进行采样,得到第二目标校验片段,根据第二目标校验片段的内容得到第二校验值,根据第一校验值和第二校验值是否相同,确定文件校验是否通过,如果相同,文件校验通过,如果不同,文件校验不通过。
182.另一种可能的实现方式:第一校验信息中包含采样参数的值和第一校验值;或者,第一校验信息中包含采样参数的值的加密字符串和第一校验值。
183.第一校验信息的结构如下:“协议标识:采样参数的值;第一校验值”,其中,通过分号将第一校验信息分为两部分,第一部分包括:协议标识和采样参数的值;第二部分包括:第一校验值。
184.例如:"ttmd5:afg2001f;5c206ede684b182c4a48b118fc086a6e",其中,“ttmd5”为协议标识,“afg2001f”为采样参数的值的加密字符串;“5c206ede684b182c4a48b118fc086a6e”为第一校验值。
185.因此,可以通过解析第一校验信息,获取采样参数的值以及第一校验值。根据预设采样方式和采样参数对待校验文件进行采样,得到第二目标校验片段,根据第二目标校验片段得到第二校验值,根据第一校验值和第二校验值是否相同,确定文件校验是否通过,如果相同,文件校验通过,如果不同,文件校验不通过。
186.再一种可能的实现方式:第一校验信息中包含预设采样方式的标识和第一校验值;
187.第一校验信息的结构如下:“协议标识:预设采样方式的标识;第一校验值”,其中,通过分号将第一校验信息分为两部分,第一部分包括:协议标识和预设采样方式的标识;第
二部分包括:第一校验值;预设采样方式的标识可以包括第一子标识和第二子标识,两个子标识之间通过“:”隔开;
188.例如:"ttmd5:1:1;5c206ede684b182c4a48b118fc086a6e",其中,“ttmd5”为协议标识,“1:1”为预设采样方式的标识,其中,第一个1为第一子标识,第二个1为第二子标识;
[0189]“5c206ede684b182c4a48b118fc086a6e”为第一校验值。
[0190]
因此,可以通过解析第一校验信息,确定目的端设置的预设采样方式是否有效。在确定目的端设置的预设采样方式有效的前提下,根据预设采样方式对文件进行采样,得到第二目标校验片段,根据第二目标校验片段得到第二校验值,根据第一校验值和第二校验值是否相同,确定文件校验是否通过,如果相同,文件校验通过,如果不同,文件校验不通过。
[0191]
又一种可能的实现方式:第一校验信息中包含预设采样方式的标识、采样参数的值和第一校验值;或者,第一校验信息中包含采样方式的标识、采样参数的值的加密字符串和第一校验值;
[0192]
第一校验信息的结构如下:“协议标识:预设采样方式的标识:采样参数的值;第一校验值”,其中,通过分号将第一校验信息分为两部分,第一部分包括:协议标识、预设采样方式的标识和采样参数的值;第二部分包括:第一校验值;预设采样方式的标识可以包括第一子标识和第二子标识,两个子标识之间通过“:”隔开;
[0193]
例如:"ttmd5:1:1:afg2001f;5c206ede684b182c4a48b118fc086a6e",其中,“ttmd5”为协议标识,“1:1”为预设采样方式的标识,其中,第一个1为第一子标识,第二个1为第二子标识;“afg2001f”为采样参数的值得加密字符串;“5c206ede684b182c4a48b118fc086a6e”为第一校验值。
[0194]
因此,可以通过解析第一校验信息,确定目的端设置的预设采样方式是否有效,获取采样参数的值以及第一校验值。在确定目的端设置的预设采样方式有效的前提下,根据预设采样方式和采样参数的值对文件进行采样,得到第二目标校验片段,根据第二目标校验片段得到第二校验值,根据第一校验值和第二校验值是否相同,确定文件校验是否通过,如果相同,文件校验通过,如果不同,文件校验不通过。在上述各实施例中,在执行上述各实施例的方法之前,还可以判断文件的大于是否大于第一预设阈值,如果文件的大小大于第一预设阈值则执行上述各实施例的方法,如果文件的大小小于等于第一预设阈值,则可以采用现有的根据文件的全量计算校验值的方案。
[0195]
在上述各实施例中,在执行上述各实施例的方法之前,还可以根据所述采样参数的值和所述源文件的大小,确定根据所述采样参数采样的第一目标校验片段的大小与所述源文件的大小的比值是否小于预设阈值。如果小于则执行上述各实施例的方法,如果不小于预设阈值,则可以采用现有的根据源文件的全量计算校验值的方案。
[0196]
本公开的技术方案还可以应用于安装劫持校验和增量包合成校验等场景中。在安装劫持校验场景中,对正确的安装结果进行采样,计算校验值,对实际的安装结果进行采样,计算校验值,对比两个校验值是否相同,以确定安装过程是否被劫持。在增量包合成校验的场景中,对增量包正确合成的结果进行采样,计算校验值,对增量包实际合成结果进行采样,计算校验值,对比两个校验值是否相同,以确定增量包合成是否正确。
[0197]
图6为本公开提供的一种文件的校验装置的结构示意图,本实施例的装置部署于
目的端,本实施例的装置包括获取模块601、采样模块602和处理模块603;其中,
[0198]
获取模块601,用于获取待校验文件和第一校验信息,其中,所述第一校验信息中包含第一校验值,所述第一校验值为源端根据所述待校验文件的源文件的第一目标校验片段生成的,所述第一目标校验片段包括:所述源端按照预设采样方式对所述源文件进行采样得到的至少一个第一采样分段;
[0199]
采样模块602,用于按照所述预设采样方式对所述待校验文件进行采样,得到至少一个第二采样分段;
[0200]
处理模块603,用于生成第二目标校验片段,所述第二目标校验片段包括:所述至少一个第二采样分段;
[0201]
所述处理模块603,还用于根据校验算法对所述第二目标校验片段的内容进行计算,得到第二校验值;
[0202]
确定所述第二校验值和所述第一校验值相同,所述文件校验通过。
[0203]
可选的,所述第一校验信息中还包括:采样参数的值;
[0204]
所述采样模块602具体用于从所述第一校验信息中获取所述采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到至少一个第二采样分段。
[0205]
可选的,所述第一校验信息中还包括:所述预设采样方式的标识,所述预设采样方式的标识用于标识源端采用的预设采样方式;
[0206]
所述采样模块602还用于根据所述预设采样方式的标识,确定所述预设采样方式。
[0207]
可选的,所述采样模块602具体用于根据文件属性和采样参数的值的对应关系,获取所述待校验文件对应的采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述待校验文件进行采样,得到至少一个第二采样分段;
[0208]
其中,所述文件属性包括下述至少一个:
[0209]
文件的大小;文件的安全级别;文件的来源。
[0210]
可选的,所述处理模块603具体用于按照预设顺序依次读取所述至少一个第二采样分段,生成第二目标校验片段;
[0211]
其中,所述预设顺序包括:
[0212]
根据所述至少一个第二采样分段在所述文件中的分布,按照从文件头到文件尾的顺序;或者,
[0213]
根据所述至少一个第二采样分段在所述文件中的分布,按照从文件尾到文件头的顺序;或者,
[0214]
用户自定义的顺序。
[0215]
可选的,所述至少一个第二采样分段包括:文件头对应的第二采样分段和/或文件尾对应的第二采样分段。
[0216]
可选的,所述采样参数包括:
[0217]
采样段数和第二采样分段大小;或者,
[0218]
第二采样分段大小和采样间隔;或者,
[0219]
划分总段数和采样段数。
[0220]
本实施例的装置对应的可用于执行上述方法实施例中目的端执行的步骤,其实现
原理和技术效果类似,此处不再赘述。
[0221]
图7为本公开提供的另一种文件的校验装置的结构示意图,本实施例的装置部署于源端,本实施例的装置包括采样模块701、处理模块702和发送模块703,其中,
[0222]
采样模块701,用于按照预设采样方式对源文件进行采样,得到至少一个第一采样分段;
[0223]
处理模块702,用于生成第一目标校验片段,所述第一目标校验片段包括:所述至少一个第一采样分段;
[0224]
所述处理模块702,还用于根据校验算法对所述第一目标校验片段的内容进行计算,得到第一校验值;
[0225]
发送模块703,用于向目的端发送所述源文件和第一校验信息,所述第一校验信息中包含所述第一校验值。
[0226]
可选的,所述第一校验信息中还包括:采样参数的值;
[0227]
所述采样模块701具体用于获取采样参数的值;根据所述预设采样方式和所述采样参数的值,对所述源文件进行采样,得到至少一个第一采样分段,其中,所述第一采样方式中包含所述采样参数。
[0228]
可选的,所述第一校验信息中还包括:所述预设采样方式的标识,其中,所述预设采样方式的标识用于标识所述源端采用的采样方式。
[0229]
可选的,所述采样模块701具体用于根据文件属性和采样参数的值的对应关系,获取所述源文件对应的采样参数的值;
[0230]
或者,从源文件的属性信息中获取所述采样参数的值;
[0231]
其中,文件属性包括下述至少一个:
[0232]
文件的大小;文件的安全级别;文件的来源。
[0233]
可选的,所述处理模块702具体用于按照预设顺序依次读取所述至少一个第一采样分段,生成第一目标校验片段;
[0234]
其中,所述预设顺序包括:
[0235]
根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件头到文件尾的顺序;或者,
[0236]
根据所述至少一个第一采样分段在所述源文件中的分布,按照从文件尾到文件头的顺序;或者,
[0237]
用户自定义的顺序。
[0238]
可选的,所述处理模块702还用于根据所述采样参数的值和所述源文件的大小,确定根据所述采样参数采样的第一目标校验片段的大小与所述源文件的大小的比值小于预设阈值。
[0239]
本实施例的装置对应的可用于执行上述方法实施例中源端执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0240]
图8为本公开提供一种电子设备的结构示意图,包括:处理器801和存储器802,其中,所述处理器801用于执行存储于存储器802的计算机程序,所述计算机程序被处理器801执行时实现上述各方法实施例中目的端的步骤。
[0241]
图9为本公开提供的另一种电子设备的结构示意图,包括:处理器901和存储器
902,其中,处理器901所述处理器用于执行存储于存储器902的计算机程序,所述计算机程序被处理器901执行时实现上述各方法实施例中源端的步骤。
[0242]
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各方法实施例中目的端的步骤。
[0243]
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述各方法实施例中源端的步骤。
[0244]
本公开还提供一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述各方法实施例中目的端的步骤。
[0245]
本公开还提供一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述各方法实施例中源端的步骤。
[0246]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0247]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1