CN112506878A - 文件处理方法、装置、存储介质及电子设备 - Google Patents
文件处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112506878A CN112506878A CN202011497553.4A CN202011497553A CN112506878A CN 112506878 A CN112506878 A CN 112506878A CN 202011497553 A CN202011497553 A CN 202011497553A CN 112506878 A CN112506878 A CN 112506878A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- compressed
- signature
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000007906 compression Methods 0.000 claims abstract description 245
- 230000006835 compression Effects 0.000 claims abstract description 244
- 238000000034 method Methods 0.000 claims abstract description 105
- 238000012795 verification Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000015654 memory Effects 0.000 claims description 57
- 238000003780 insertion Methods 0.000 claims description 23
- 238000004458 analytical method Methods 0.000 claims description 22
- 230000037431 insertion Effects 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 19
- 230000006837 decompression Effects 0.000 claims description 16
- 238000000926 separation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 238000013524 data verification Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013144 data compression Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种文件处理方法、装置、存储介质及电子设备,其中,方法包括:采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。采用本申请实施例,可以确保不含签名结构区的高压缩率文件进行签名校验,保障高压缩率文件的安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件处理方法、装置、存储介质及电子设备。
背景技术
随着通信技术的发展,在两个通信设备之间传输文件数据时,为提高文件数据传输的效率,会由电子设备可以对源文件数据进行压缩生成文件压缩包;相关获取文件数据的数据获取端只需获取文件压缩包,然后对获取到的文件压缩包进行解压缩,从而可以获取到原始的源文件数据。
发明内容
本申请实施例提供了一种文件处理方法、装置、存储介质及电子设备,可以确保不含签名结构区的高压缩率文件进行签名校验,保障高压缩率文件的安全性。本申请实施例的技术方案如下:
第一方面,本申请实施例提供了一种文件处理方法,应用于第一设备,所述方法包括:
采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区;
获取所述源文件的签名信息;
将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
第二方面,本申请实施例提供了一种文件处理方法,所述方法包括:
确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
第二方面,本申请实施例提供了一种文件处理装置,所述装置包括:
文件压缩模块,用于采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区;
签名获取模块,用于获取所述源文件的签名信息;
压缩包生成模块,用于将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
第三方面,本申请实施例提供了另一种文件处理方法,应用于第二设备,所述方法包括:
确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
第四方面,本申请实施例提供了另一种文件处理装置,所述装置包括:
区域确定模块,用于确定目标压缩包中针对签名信息的目标区域;
压缩解析模块,用于基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
签名校验模块,用于基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第六方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请一个或多个实施例中,第一设备采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种文件处理方法的流程示意图;
图2是本申请实施例提供的另一种文件处理方法的流程示意图;
图3是本申请实施例提供的文件处理方法所涉及的一种zip包文件的结构;
图4是本申请实施例提供的文件处理方法所涉及的一种文件结构的示意图;
图5是本申请实施例提供的另一种文件处理方法的流程示意图;
图6是本申请实施例提供的另一种文件处理方法的流程示意图;
图7是本申请实施例提供的一种文件处理的场景架构示意图;
图8是本申请实施例提供的一种文件处理装置的结构示意图;
图9是本申请实施例提供的一种压缩包生成模块的结构示意图;
图10是本申请实施例提供的另一种文件处理装置的结构示意图;
图11是本申请实施例提供的一种区域确定模块的结构示意图;
图12是本申请实施例提供的一种电子设备的结构示意图;
图13是本申请实施例提供的另一种电子设备的结构示意图;
图14是本申请实施例提供的操作系统和用户空间的结构示意图;
图15是图13中安卓操作系统的架构图;
图16是图13中IOS操作系统的架构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在相关技术中,目前对原始文件数据进行压缩的过程中,通常采用为了文件的高压缩率,节省文件传输开销,而采用支持较高压缩率的压缩方式,但是往往这些“支持较高压缩率的压缩方式”在提升压缩率或压缩速度的同时,会精简包体结构,这也导致了采用这些“支持较高压缩率的压缩方式(如7z压缩方式)”生成的压缩文件不包含签名结构区(用于存放签名信息的区域),相关技术中,采用高压缩率的压缩方式进行压缩之后,由于其压缩包或压缩文件不包含签名结构,导致在接收到压缩包后无法进行文件签名校验,也难以保证文件的安全性。另外,在相关技术中,为了保证文件的安全性只能采用压缩率较低且压缩后压缩包包含签名结构区的压缩方式进行文件压缩。
下面结合具体的实施例对本申请进行详细说明。
在一个实施例中,如图1所示,特提出了一种文件处理方法,应用于第一设备,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的文件处理装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
具体的,该文件处理方法包括:
步骤S101:采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区。
目前的电子设备,多可以通过网络服务获取共享内容或下载数据资源。通过网络服务用户向服务器上载和从服务设备下载用户内容,例如,电影、照片、音乐文件、应用安装或更新文件以及文档等未压缩的源文件。
在源文件的传输获取过程中,为了方便文件获取者(如终端)快速获取到源文件以及节省文件传输的开销,目前的通常对内存较高、资源较大的数据源文件进行压缩。如对包含多个文件(例如,如doc和hwp文件的开放文档)的源文件进行压缩,对应用程序的大量的资源文件进行压缩。
在相关技术中,目前对源文件进行压缩过程中,为了提高文件的高压缩率,节省文件传输开销,通常采用支持较高压缩率的压缩方式进行压缩,但是往往这些“支持较高压缩率的压缩方式”在提升压缩率或压缩速度的同时,精简包体结构和提升压缩编码效率,这也导致了采用这些“支持较高压缩率的压缩方式”(也即本申请中的目标压缩方式)生成的压缩文件不包含签名结构区,简而言之,最终生成的压缩文件不包含存放用于对文件(如源文件,如压缩文件)签名校验的签名信息。在一些实际应用环境中,通常采用支持较高压缩率(如高于zip压缩方式对应的压缩率)的目标压缩方式进行压缩,从而生成的压缩文件通常文件获取者不对压缩文件进行签名校验;如在快应用、小程序等场景中,通常为了提升文件的下载初始化的效率,往往采用较高压缩率的目标压缩方式进行压缩,而文件下载者下载对应的压缩文件之后直接采用对应的解压方式进行解压,整个过程无法对文件的身份进行签名校验。签名通常被作为被签名对象的身份凭证,在数字安全领域,基于签名信息的签名检验过程不过缺少。
在本申请中,采用目标压缩方式对源文件进行压缩后,得到的初始压缩文件,该压缩文件在文件结构上进一步精简,压缩文件的过程中不计算签名信息,压缩文件的文件结构中也不包含用于存放签名信息的签名结构区。进一步的,所述目标压缩方式可以是7z压缩方式,7z是一种主流高效的压缩格式,它拥有极高的压缩比,7z压缩可以使用多种压缩算法进行数据压缩的档案格式,“7z”指的是一种档案格式,而应用该档案格式的压缩方式可以称作为7z压缩方式,如7-Zip,通常使用7-Zip的7z格式能比使用zip格式的压缩文件小30-70%。并且使用7-Zip创建的zip格式比大多数其它压缩软件创建的都小2-10%。
在一种具体的实施场景中,如快应用场景中,快应用是一种无需安装的新形态应用,可以使用前端技术栈开发,同时具备HTML(HyperText Markup Language,超文本标记语言)页面和原生应用的双重优点,用户无需安装相应的安装文件(如apk包),可以即点即用,在这种场景下需要下载的文件具有较高的压缩率且具备一定的数据安全性,因此在相关技术中,通常采用压缩时具有签名结构区的zip压缩方式。相对而言,这种方式文件压缩率较之于本申请中的目标压缩方式的文件压缩率较低。进一步的,可以通常执行本申请涉及的所述文件处理方法实现采用目标压缩方式来进一步提高文件压缩率,同时最后生成的文件也可以具备签名校验能力。
进一步的,第一设备应用与快应用场景下时,第一设备可以获取快应用对应的源应用数据,此时可以不采用相关技术中的压缩率较低的zip压缩方式,而可以采用7z压缩方式对所述源应用数据进行压缩,首先生成初始压缩文件。其中,对源文件进行压缩的压缩规则基于目标压缩方式的类型而定,具体压缩过程可参考相关技术中的释义此处不再赘述。
步骤S102:获取所述源文件的签名信息。
在一种可行的实施方式中,通常对相应签名对象进行签名通常基于该签名对象(如待签名文件)采用相应的签名算法确定用于签名校验的签名信息,在本申请中可以对所述源文件进行签名,也即采用相应的签名算法计算源文件的签名信息,从而得到所述源文件的签名信息。如,可以是对源文件计算摘要,将计算后的摘要作为签名信息。如可以是采用源文件开发者所对应的密钥,对源文件计算签名(如进行哈希计算等)。
在一种可行的实施方式中,通常初始压缩文件较之于源文件而言,初始压缩文件的内存较小,而在计算签名信息是对整个签名对象进行签名处理,如计算待签名对象的哈希值,在本申请中,初始压缩文件为采用目标压缩方式对源文件进行压缩之后的压缩文件,初始压缩文件内存更小,第一设备可以将初始压缩文件作为待签名对象,对初始压缩文件进行签名,从而得到参考签名信息,由于初始压缩文件与源文件强相关,第一设备可以将该参考签名信息作为所述源文件的签名信息。
可选的,通常初始压缩文件或源文件可以包括多个子文件,且各子文件的存储顺序确定,在本申请中,可以对所述对个子文件中的目标文件进行签名,得到签名信息,进一步的,由于此时不对待签名对象所包含的所有子文件进行签名,在本申请中可以在最终的压缩包中不对选取的目标文件进行标记,如标记目标文件的标识,而是预先与第二设备(如终端)协商签名规则,如可以基于源文件的文件标识(如版本号),建立文件标识与从多个子文件中选取目标文件的选取规则,从而基于文件标识可以确定签名时选择的文件,以及便于在签名校验时基于确定的目标文件进行验签。
步骤S103:将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
所述目标区域为从压缩后的初始压缩文件中确定的用于存放签名信息的区域。由于初始压缩文件中不包含签名结构区,在本申请中通过获取源文件的签名信息之后,然后从初始压缩文件中确定目标区域,然后将该签名信息写入至初始压缩文件的目标区域中,从而生成目标压缩文件。
在一种可行的实施方式中,第一设备可以预先设置目标区域确定的规则,该规则的确定遵循在对目标压缩包进行解压缩时可以还原出初始的源文件。因此目标区域的确定通常基于一定的规则。
可选的,可以预先对采用目标压缩方式压缩后的初始压缩文件的文件结构进行分析,基于文件结构的特征然后确定可存放签名信息的目标区域。如可以在初始压缩文件的压缩数据区中确定目标区域,通常数据区中压缩数据分区或分块存储,两两数据区或两两数据块通常相互独立,目标区域可以是基于两两数据区或两两数据块的分隔位置处确定一个目标区域,然后对目标区域上的原存储数据整体偏移相应位置即可,从而达到将签名信息插入至两两数据区或两两数据块的效果。进一步的,两两数据块的选取之后可以对选取信息进行记录,以便于解压时可以获取到该签名信息。
可选的,可以获取初始压缩文件的标志位,如文件头部、文件尾部、压缩数据区头部以及压缩数据区尾部,然后基于这些标志位可以确定签名信息的目标区域,如可以基于签名信息的内存大小,以所述标志位基准确定所述标志位周侧的区域为目标区域,然后将签名信息写入至目标区域上即可。
在本申请实施例中,第一设备采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
请参见图2,图2是本申请提出的一种文件处理方法的另一种实施例的流程示意图。具体的:
步骤S201:采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区。
具体可参见步骤S101,此处不再赘述。
步骤S202:获取所述源文件的签名信息。
具体可参见步骤S102,此处不再赘述。
步骤S203:确定所述签名信息的签名写入类型。
所述签名写入类型对应相应的签名写入方式,第一设备在确定针对所述签名信息的签名写入类型之后,可以采用该签名写入类型对应的签名写入方式,基于确定的签名写入方式确定签名信息写入的目标区域,然后在目标区域上写入该签名信息。
可选的,在本申请中,签名写入类型包括但不限于数据拼接类型以及数据插入类型,所述数据拼接类型对应的签名写入方式通常不对“采用目标压缩方式压缩后的初始压缩文件”所对应的文件结构进行改变,而是基于数据拼接类型,确定初始压缩文件的标志位,基于标志位将签名信息进行写入。所述数据插入类型对应的签名写入方式通常需要基于初始压缩文件的文件结构,将签名信息插入至压缩文件的数据存储区中。
在一种可行的实施方式中,第一设备可以基于初始压缩文件的文件标识(如版本号、文件类型、文件名称等)来确定,具体预先设置有文件标识与参考签名写入类型的对应关系,实际应用中只需基于初始压缩文件的文件标识即可获取到对应的签名写入类型。例如“文件标识与参考签名写入类型的对应关系”可以是根据文件版本号与参考签名写入类型的对应关系,不同的文件版本号对应不同的参考签名写入类型。
在一种可行的实施方式中,第一设备可以基于初始压缩文件的时间属性(如文件发布时间、文件压缩时间、当前时间节点等)来确定,具体预先设置有时间属性与参考签名写入类型的对应关系,实际应用中只需基于初始压缩文件的时间属性即可获取到对应的签名写入类型。例如“文件标识与参考签名写入类型的对应关系”可以是根据文件发布时间(如快应用文件发布时间)与参考签名写入类型的对应关系,不同的文件发布时间对应不同的参考签名写入类型。
在一种可行的实施方式中,第一设备可以基于初始压缩文件的文件应用场景(如快应用场景、音视频场景、文本场景等)来确定,具体预先设置有文件应用场景与参考签名写入类型的对应关系,实际应用中只需基于初始压缩文件的文件应用场景即可获取到对应的签名写入类型。不同的文件应用场景对应不同的参考签名写入类型。
进一步的,第一设备在确定针对初始压缩文件的签名写入类型之后,然后基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,最后即可生成目标压缩包。具体实施过程可参见下述步骤S204。
步骤S204:若所述签名写入类型为数据拼接类型,则获取所述初始压缩文件的文件标志。
所述数据拼接类型对应的签名写入方式通常不对“采用目标压缩方式压缩后的初始压缩文件”所对应的文件结构进行改变,而是基于数据拼接类型,确定初始压缩文件的标志位,标志位包括但不限于魔数标志、尾文件标志。然后基于标志位确定对应的参考写入区域,也即待写入签名信息的目标区域,最后将签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
S2041、若所述文件标志为魔数标志,第一设备将所述魔数标志之前的参考写入区域作为所述目标区域。
所述魔数标志在诸多文件场景下用于判断文件的类型,通过扩展名来识别一个文件的类型的,比如一个“.txt”类型的文件可以确定一个纯文本文件。但是,扩展名是可以修改的,当一个文件的扩展名被修改过,识别一个文件的类型可以通过获取“魔数”标志。很多类型的文件“魔数”标志通常固定配置在该文件的头部,一般为该文件其起始的固定的几个字节,也即魔数标志,基于文件魔数标志在整个初始压缩文件的结构特性,通常固定配置在初始压缩文件的开头,因此,在本申请中,可以通过获取文件标志,具体为获取魔数标志,然后基于该魔数标志确定魔数标志之前的位置确定参考写入区域,其中参考写入区域的大小可以基于签名信息的内存大小确定,也即预先可以获取初始压缩文件的内存大小,然后基于内存大小、魔数标志,第一设备在魔数标志之前确定“内存大小”指示的参考写入区域,然后将该参考写入区域作为目标区域。
S2042、若所述文件标志为尾文件标志,第一设备将所述尾文件标志之后的参考写入区域作为所述目标区域。
所述尾文件标志可以理解为初始压缩文件的文件尾,尾文件标志通常是初始压缩文件的结束标志,初始压缩文件通常作为一种硬盘、闪存等介质存储文件,该介质存储文件是按照基本的储存簇进行存储,最后一个簇也即是有结束标志的尾文件标志,因为存储在硬盘、闪存等介质上的文件不是连续的所以如果没有文件尾电子设备系统将会认为文件尚未结束,也就不是一个完整的文件实际应用中通常打不开,在本申请中,第一设备可以通过获取文件标志,具体为获取尾文件标志,然后基于该尾文件标志确定尾文件标志之后的参考写入区域,其中参考写入区域的大小可以基于签名信息的内存大小确定,也即预先可以获取初始压缩文件的内存大小,然后基于内存大小、尾文件标志,第一设备在尾文件标志之后的位置确定“内存大小”指示的参考写入区域,然后将该参考写入区域作为目标区域。
S2043、第一设备将所述签名信息写入至与所述初始压缩文件的所述目标区域上,生成目标压缩包。
第一设备在基于获取所述初始压缩文件的文件标志如魔数标志、尾文件标志,基于所述文件标志确定相应的目标区域,最后将签名信息写入值初始压缩文件的目标区域,最后对所有文件(签名信息、原始初始压缩文件的数据)进行封装,最后即可生成目标压缩包。
步骤S205:若签名处理类型为数据插入类型,则获取所述初始压缩文件的文件结构,基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
所述文件结构通常根据目标压缩方式对应的压缩规则确定,在本申请中,为了提升压缩率通常对包体结构(也可以理解为文件结构进行精简),在提升压缩输的同时也提升压缩编码效率。进一步的,在本申请中,初始压缩文件的文件结构,文件结构较之于采用zip压缩方式的结构要更精简,示意性的,如图3所示,图3是一种zip包文件的结构,zip包文件的结构至少包括:压缩源文件数据区、签名存放区(相当于签名结构区)、中央文件目录区以及目标结束标志,zip压缩方式的压缩率不高,文件结构也不精简,在压缩率不高的情况下,压缩后的包体会比较大,在实际应用场景下,如快应用场景下,用户在第一次打开快应用时,需要花费较长的时间用在下载快应用对应的压缩文件上。
在本申请中,所述初始压缩文件的文件结构可以仅包括前文件头区、压缩数据区以及尾文件头区,其中,压缩数据区主要用于存储对源文件压缩后的压缩数据。进一步的,以7z压缩方式为例,7z压缩方式压缩后的初始压缩文件的压缩结构即为前文件头区、压缩数据区以及尾文件头区。
具体的,所述数据插入类型对应的签名写入方式通常需要基于初始压缩文件的文件结构,然后不采用将签名信息与原初始压缩文件直接进行拼接,如直接前后拼接,而是需要将签名信息插入值初始压缩文件的用于存储压缩数据的压缩数据去中,实际应用中,第一设备基于所述文件结构然后在压缩数据区中确定目标位置,然后基于目标位置来确定写入区域,最后将所述签名信息写入所述初始压缩文件的目标区域中。
S2051:第一设备可以获取所述初始压缩文件的文件结构,所述初始压缩文件的文件结构包括前文件头区、压缩数据区以及尾文件头区。
其中,第一设备获取该初始压缩文件的文件结构,第一设备只需基于压缩时的压缩规则即可确定初始压缩文件的文件结构,如文件构成、文件分布位置等等从而可以确定文件结构,然后在确定签名写入类型时,若所述签名写入类型为签名插入类型,则需获取初始压缩文件的文件结构,通常所述初始压缩文件的文件结构包括前文件头区、压缩数据区以及尾文件头区。例如7z压缩方式压缩后对应的文件结构通常由前文件头区、压缩数据区以及尾文件头区构成,如图4所示,图4是一种本申请涉及的文件结构的示意图。
示意性的,前文件头区,如"SignatureHeader".它通常是由较短的固定字节构成,如7z压缩后的文件结构通常可以由32个字节定长的,前文件头区通常其实记录的信息很少,前文件头区的主要用于记录尾文件头区的位置和目标压缩方式(如7z压缩方式)的版本号,压缩数据的主要结构通常可以存在尾文件头区中。
示意性的,压缩数据区,采用目标压缩方式将源文件压缩成若干个数据包,也即"Packedstreams",就是数据包的意思,压缩数据区就是按顺序存储这些"Packedstreams",每个数据包的位置和大小信息都会记录在尾文件头区中,解压的时候就会从这里读出各数据包,然后解压出来,其中两辆数据包之间相互独立,这里压缩数据区即由多个压缩数据包简单的排布压缩后的数据存储区域。可以理解的是,在本申请中,也即可以从多个压缩数据包中来确定两两压缩数据包中的分割位置,然后在从分割位置处确定待插入签名信息的目标区域。
示意性的,尾文件头区,在实际应用中尾文件头区存储每个数据包对应的包信息,包信息包括但不限于包的位置、包的大小信息、包名、文件(包)时间等。通常这部分数据可以直接进行存储。进一步,在数据包数量很多时,通常可以对尾文件头区进行压缩,也即吧原始的尾文件头区的数据采用相应的压缩算法(如lzma算法)再压缩,此时尾文件头区就包括文件头的压缩数据(PH)和尾文件头压缩后的头信息(HH)。
S2052:在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置,并确定所述目标位置指示的目标区域。
具体的,第一设备基于所述文件结构然后在压缩数据区包括的至少一个数据包中,来确定用于存储签名信息,通常该签名信息储存至压缩数据区后,需要保障后期对最终压缩包进行解压还原时可以顺利解压出来,也即遵循不对各压缩数据区包括的至少一个数据包的数据进行改变的原则,从而基于压缩数据区各数据包的分布情况来确定目标位置。
在一种可行的实施方式中,第一设备可以采用包序列外插入的方式,各数据包在数据存储区可以看做以一定顺序的序列进行排列,则对签名信息在压缩数据去进行插入时,不在各数据包对应的包序列中进行签名信息的插入,第一设备可以获取压缩数据区的区头部或区尾部,如以区头部为目标位置,将目标位置之前的区域作为所述区头部指示的目标区域,进一步的,可以获取签名信息的数据长度,以所述数据长度为参照,在区头部确定数据长度指示的区域作为目标区域。如以区尾部为目标位置,将目标位置之后的区域作为所述区尾部指示的目标区域,进一步的,可以获取签名信息的数据长度,以所述数据长度为参照,在区尾部确定数据长度指示的区域作为目标区域。
在一种可行的实施方式中,第一设备可以采用包序列内插入的方式,各数据包在数据存储区可以看做以一定顺序的序列进行排列,则对签名信息在压缩数据去进行插入时,不在每个数据包中包数据中进行签名信息的插入,而是确定所有两两数据包间的分割位置,将从所有分割位置(也即下述包分割位置)中选中其一作为目标位置,然后可以获取签名信息的数据长度,以所述数据长度为参照,将目标位置指示的所述数据长度的区域作为所述区尾部指示的目标区域。
其中,从所有分割位置(也即下述包分割位置)中选中其一作为目标位置的方式可以是如下所示出的方式:
在一种可行的实施方式中,第一设备获取所述源文件对应的文件标识;然后可以基于预设的参考文件标识与参考位置的映射关系,确定所述文件标识对应的目标位置。
具体的,第一设备可以基于所述源文件的文件标识(如版本号、文件类型、文件名称等)来确定,具体预先设置有文件标识与参考位置(也即参考包分隔位置)的映射关系,其中所述映射关系可以是以列表、集合、指针存储等方式进行表征,实际应用中只需基于源文件的文件标识即可获取到对应的签名写入类型。例如可以是根据文件版本号与参考位置的对应关系,不同的源文件版本号对应不同的参考位置。
进一步的,上述预设的参考文件标识与参考位置的映射关系可以在实际应用中同步至第二设备(也即对最终压缩包进行解压的设备),以便于第二设备可以基于该映射关系和相应的文件标识(如版本号)来准确获取到签名信息。
在一种可行的实施方式中,第一设备可以所述源文件的时间参数(如文件发布时间、文件压缩时间、当前时间节点等)来确定,具体预先设置有时间参数与参考位置(也即参考包分隔位置)的映射关系,实际应用中只需基于所述源文件的时间参数即可获取到对应的参考位置。例如可以是根据文件发布时间(如快应用文件发布时间)与参考位置(也即参考包分隔位置)的映射关系,不同的文件发布时间对应不同的参考位置。
进一步的,上述预设的时间参数与参考位置的映射关系可以在实际应用中同步至第二设备(也即对最终压缩包进行解压的设备),以便于第二设备可以基于该映射关系和相应的时间参数(如文件发布时间)来准确获取到签名信息。
在一种可行的实施方式中,第一设备确定各所述数据包的包分隔位置,可以从各所述包分隔位置中随机确定目标位置,然后可以获取签名信息的数据长度,以所述数据长度为参照,将目标位置指示的所述数据长度的区域作为所述区尾部指示的目标区域。进一步的,当随机确定目标位置时,第一设备还需将该目标位置进行相应标记,以便解压是方便获取到,如将该目标位置写入值尾文件头区中,则可以在对文件进行解压前的解析过程中,对尾文件头区进行解析从而获取到用于文件鉴权的签名信息。
S2053:第一设备将所述签名信息插入至所述目标区域上,生成目标压缩包。
在一种可行的实施方式中,第一设备在基于将所述签名信息写入至所述目标区域上后,然后可以对本次签名信息的写入过程进行标记,标记的目的在于方便第二设备获取到目标压缩包可以快速获取到签名信息,然后基于签名信息签名验证通过之后,可以从目标压缩包中将该签名信息进行移除,然后得到不包含签名信息的初始压缩文件,对其采用相应的解压算法进行解压即可。
具体的,第一设备可以确定所述签名信息的数据长度,然后基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息,具体实现中,第一设备可以对目标位置、所述数据长度以及所述签名写入类型进行数据封装,然后生成包含目标位置、所述数据长度以及所述签名写入类型的签名解析信息,最后第一设备将所述签名解析信息插入至所述尾文件头区中,最终生成目标压缩包。
进一步的,在本申请中签名解析信息的生成可以仅适用于“所述签名写入类型为数据插入类型”时才基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息,最后写入至所述尾文件头区中;在本申请中签名解析信息的生成也可以适用于任一签名写入类型,也即第一设备无论采用何种签名写入类型,第一设备均执行“确定所述签名信息的数据长度,基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息,将所述签名解析信息插入至所述尾文件头区中,最终生成目标压缩包”的步骤。
进一步的,为了避免对尾文件头区中数据排列顺序的改变,第一设备可以将签名解析信息拼接至尾文件头区首字符之前的区域或拼接至尾文件头区尾字符之后的区域。
在本申请实施例中,第一设备采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性;以及,第一设备可以根据不同的签名写入方式来确定相应的目标区域,以基于目标区域进行签名信息写入,提升了签名信息写入的智能性;以及基于不同的签名写入类型进行写入时通常不更改压缩后的初始压缩文件的数据结构和数据包中的数据,保障了文件压缩后数据的完整性,以及便于解压端在签名验证后可直接对初始压缩文件进行解压即可快速获取到源文件。
在一个实施例中,如图5所示,特提出了一种文件处理方法,应用于第二设备,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的文件处理装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
具体的,该文件处理方法包括:
步骤S301:确定目标压缩包中针对签名信息的目标区域。
根据一些实施例中,第一设备作为目标压缩包的压缩方,在生成目标压缩包的过程中,通常采用目标压缩方式(如7z压缩方式)对源文件进行压缩,生成初始压缩文件(其中,初始压缩文件不包括签名结构区),第一设备可以获取源文件的签名信息并确定针对签名信息的目标区域,将签名信息写入初始压缩文件的目标区域,最终生成目标压缩包。则第二设备作为目标压缩包的解压方,第二设备通常在对目标压缩包中的数据进行解压缩之前,需要先对目标压缩包的进行鉴权验证,首先需要确定目标压缩包中签名信息所处的目标区域,以便确定目标区域后获取目标区域上的签名信息对该目标压缩包进行鉴权验证。
根据一些实施例中,第一设备对签名信息进行写入时,通常基于确定的针对初始压缩文件的签名写入类型,然后基于所述签名写入类型来确定写入签名信息的目标区域;进一步的,第二设备可以获取第一设备的签名写入规则,如预先或在获取目标压缩包时同步获取第一设备的签名写入规则,如第一设备可以是采用默认的签名写入规则(如默认采用数据插入类型)。然后基于该签名写入规则,来确定针对目标压缩包中的所述签名信息对应的签名写入类型,根据签名写入类型在目标压缩包中来确定目标区域。
根据一些实施例中,签名写入规则可以是第一设备按照初始压缩文件(采用目标压缩方式对源文件压缩后的压缩文件)的文件标识(如版本号、文件类型、文件名称等)来确定,文件标识与参考签名写入类型的存在对应关系,而目标压缩包基于初始压缩文件和签名信息生成,目标压缩包与初始压缩文件的文件标识相关联,在一些实施场景中,目标压缩包与初始压缩文件的文件标识相同,实际应用中第二设备只需基于目标压缩包的文件标识即可获取到对应的签名写入类型。例如“文件标识与参考签名写入类型的对应关系”可以是根据文件版本号与参考签名写入类型的对应关系,不同的文件版本号对应不同的参考签名写入类型。
根据一些实施例中,签名写入规则可以是第一设备基于初始压缩文件的时间属性(如文件发布时间、文件压缩时间、当前时间节点等)来确定,时间属性与参考签名写入类型的存在对应关系,而目标压缩包基于初始压缩文件和签名信息生成,目标压缩包与初始压缩文件的时间属性相关联,在一些实施场景中,目标压缩包与初始压缩文件的时间属性相同,实际应用中第二设备只需基于目标压缩包的时间属性即可获取到对应的签名写入类型。例如可以是根据文件发布时间(如快应用文件发布时间)与参考签名写入类型的对应关系,不同的文件发布时间对应不同的参考签名写入类型。
进一步的,第二设备在确定针对目标压缩包中的所述签名信息对应的签名写入类型之后,可以基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域。其中,签名写入类型与目标区域存在相应的映射关系,第二设备在确定签名写入类型之后,按照签名写入类型确定目标区域规则,继而可以确定目标区域,如签名写入类型为数据拼接类型时,通过获取目标压缩包的文件标志(如魔数标志、尾文件头标志)然后确定目标区域。
步骤S302:基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息。
所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区。
根据一些实施例中,第一设备在生成目标压缩包时,将签名信息写入至初始压缩文件的目标区域中,继而生成信息写入完后的目标压缩包,在实际应用中,本申请中目标压缩包的目标区域和初始压缩文件的目标区域通常相同;第二设备只需在确定针对签名信息所处的目标区域之后,然后提取目标压缩包中目标区域内的数据即可得到签名信息,然后通过获取目标区域外的数据即可的得到初始压缩文件(也即采用目标压缩方式对源文件进行压缩生成的压缩文件)。
步骤S303:基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
具体的,第二设备在获取所述目标压缩包中的签名信息之后,然后基于预先设置的签名校验规则,建立进行数据校验的目标线程,并为所述目标线程调用第二设备所包含的资源池的计算资源,以实现对所述目标压缩包的初始压缩文件进行快速校验。在本实际应用中,若采用目标压缩方式(如7z压缩方式)对源文件进行压缩,由于为了提高压缩率通常压缩文件的结构进一步精简,以使其生成的压缩包不含存放签名信息(可包含签名密钥)的签名结构区,通常执行本申请的文件处理方法可实现对最终生成的目标压缩包的校验,保障文件处理过程中的安全性,同时节省压缩包的传输开销。
在实际应用中,预先设置的数据校验规则可以是基于任一校验算法来实现对初始压缩文件完整性的检测,通常为根据一种或多种指定的算法对初始压缩文件计算出的一个校验值。接收方(如第二设备)用同样的算法计算一次校验值,如果和数据块提供的校验值一样,就说明数据是完整的。
一种数据校验规则可以是:在压缩数据存储和传输中,在压缩数据对应的各字节中额外增加指数据校验数的(如一个)比特位,用来检验错误。校验位可以通过数据位经过逻辑运算(如异或运算)计算出来。根据被传输数据的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验可以预先设置好。通常专门在数据中设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
一种数据校验规则可以是:bcc异或校验法(block check character),在实际应用中,第二设备将数据块中的验证数据(如压缩文件或源文件中的全部或部分指定数据)和一个指定的初始值(如0)进行异或计算,得到的结果就是校验值,校验值可以作为数据中的签名元素随数据块所包含的部分镜像数据一起传输至终端,终端接收到该数据块后可以基于所携带的算法信息(如bcc异或校验法的标识、校验值、初始值0),采用同样的bcc异或校验法对相对应的数据(如压缩文件或源文件中的全部或部分指定数据)计算,判断计算结果是否与校验值一致,若一致,则收到的初始压缩文件的数据是完整的。
一种数据校验规则可以是:CRC循环冗余校验(Cyclic Redundancy Check),如CRC16算法,实际应用中,根据签名信息和CRC码之间所遵循的规则进行检验计算,根据检验计算结果与签名信息携带的CRC码进行对比,若一致,则收到的初始压缩文件以及目标压缩包的数据是完整的,若不一致,则初始压缩文件以及目标压缩包的数据出错。
在实际应用中,具体采用的数据校验方式可以根据压缩端(第一设备)和/或解压端(如第二设备)预定的数据校验规则确定,可以是上述提及的一种或多种的拟合,也可以是相关技术中涉及的对数据进行数据校验的算法,此处不作具体限定。
在本申请实施例中,第二设备确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在第一设备采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;只需基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,即可生成所述源文件。压缩时通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中;第二设备可以快速获取到目标压缩包,以及通过确定针对签名信息的目标区域,即可快速获取到签名信息实现对高压缩率的压缩文件进行身份校验,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
请参见图6,图6是本申请提出的一种文件处理方法的另一种实施例的流程示意图。具体的:
步骤S401:确定目标压缩包对应的文件压缩方式。
步骤S402:确定所述文件压缩方式为目标压缩方式,确定针对目标压缩包中的所述签名信息对应的签名写入类型。
在两个通信设备(例如第一设备和第二设备)之间传输数据时,为提高数据传输的效率,会由数据发送端(也即压缩端)对数据进行压缩生成目标压缩包,数据接收端(也即解压端)对接收到的压缩后的目标压缩包进行验证后解压缩。因此,第一设备和第二设备需要就目标压缩包的压缩方式进行协商,以使得解压端(也即第二设备)能够可靠地解析出正确的源文件。如第二设备在获取该目标压缩包时,可向目标压缩包的提供端(如第一设备)获取针对目标压缩包的文件压缩方式;如目标压缩包可以包含表征文件压缩方式的标识,第二设备可以通过获取该标识,确定目标压缩包的压缩方式。
在一种可行的实施方式中,第二设备可以通过目标压缩包包含表征文件压缩方式的标识来确定,具体实施中,第二设备可以获取所述目标压缩包的魔数标志,基于所述魔数标志来确定目标压缩包对应的文件压缩方式。
根据一些实施例中,所述魔数标志在诸多文件场景下用于判断文件的类型,通过扩展名来识别一个文件的类型的,比如一个.txt类型的文件可以确定一个纯文本文件。但是,扩展名是可以修改的,当一个文件的扩展名被修改过,识别一个文件的类型可以通过获取“魔数”标志。很多类型的文件“魔数”标志通常固定配置在该文件的头部,一般为该文件其起始的固定的几个字节,也即魔数标志,基于文件魔数标志在整个初始压缩文件的结构特性,通常固定配置在初始压缩文件的头部区域,第二设备可以获取到目标压缩包的魔数标志,然后根据魔数标志来确定目标压缩包的文件类型,继而确定所采用的文件压缩方式,在本申请中,若文件压缩方式与目标压缩方式相同,如均为7z压缩方式,则第二设备确定目标压缩包对应的压缩方式为目标压缩方式,然后确定针对目标压缩包中的所述签名信息对应的签名写入类型。
步骤S403:当所述签名写入类型为数据拼接类型时,获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域。
根据一些实施例中,所述数据拼接类型对应的签名写入方式第一设备在签名信息写入时通常不对“采用目标压缩方式压缩后的初始压缩文件”所对应的文件结构进行改变,而是基于数据拼接类型,确定初始压缩文件的文件标志,基于文件标志将签名信息进行写入。其中,所述文件标志包括但不限于魔数标志以及尾文件标志。在实际应用中,目标压缩包基于签名信息以及初始压缩文件生成,目标压缩包中的文件标志与初始压缩文件的文件标志强相关,在一些实施场景中,目标压缩包中的文件标志与初始压缩文件的文件标志相同。第二设备可以在签名写入类型为数据拼接类型的情况下,来获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域
S4031:若所述文件标志为魔数标志,将所述魔数标志之前的第一区域作为所述第一目标区域;
根据一些实施例中,在数据压缩时,第一设备将魔数标志之前的参考写入区域作为所述目标区域,例如,第一设备通过获取初始压缩文件的内存大小,然后基于内存大小、魔数标志,第一设备在魔数标志之前确定“内存大小”指示的参考写入区域,然后将该参考写入区域作为目标区域;则在数据解压时,第二设备只需在目标压缩包中确定该魔数标志的位置,然后将魔数标志之前的所有数据存储区域作为第一目标区域即可,其中,第二设备在数据解压阶段此时无需确定签名信息的大小。
S4032:若所述文件标志为尾文件标志,将所述尾文件标志之后的第二区域作为所述第一目标区域。
根据一些实施例中,在数据压缩时,第一设备将尾文件标志之后的参考写入区域作为所述目标区域,例如,第一设备通过获取初始压缩文件的内存大小,然后基于内存大小、尾文件标志,第一设备在尾文件标志之后确定“内存大小”指示的参考写入区域,然后将该参考写入区域作为目标区域;则在数据解压时,第二设备只需在目标压缩包中确定该尾文件标志的位置,然后将尾文件标志之后的所有数据存储区域作为第一目标区域即可,其中,第二设备在数据解压阶段此时无需确定签名信息的大小。
步骤S404:从所述第一目标区域处对所述目标压缩包进行解拼接,得到所述第一目标区域外的初始压缩文件以及所述第一目标区域内的签名信息。
其中,所述初始压缩文件在第一设备采用目标压缩方式(如7z压缩方式)对源文件压缩时生成,所述初始压缩文件不包括签名结构区。
根据一些实施例中,第一设备在生成目标压缩包时,若签名写入类型为数据拼接类型,则第一设备将签名信息拼接写入至初始压缩文件的目标区域中,继而生成信息写入完后的目标压缩包,在实际应用中,本申请中目标压缩包的目标区域和初始压缩文件的目标区域通常相同;第二设备只需在确定针对签名信息所处的第一目标区域之后进行签名信息的解拼接,提取目标压缩包中第一目标区域内的数据即可得到签名信息,然后通过获取目标区域外的数据即可的得到初始压缩文件(也即采用目标压缩方式对源文件进行压缩生成的压缩文件)。
步骤S405:若所述签名写入类型为数据插入类型,则获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域。
根据一些实施例中,数据插入类型对应的签名写入方式通常需要第一设备基于初始压缩文件的文件结构,然后不采用将签名信息与原初始压缩文件直接进行拼接,如直接前后拼接,而是需要第一设备将签名信息插入值初始压缩文件的用于存储压缩数据的压缩数据去中,实际应用中,第一设备基于所述文件结构然后在压缩数据区中确定目标位置,然后基于目标位置来确定写入区域,最后将所述签名信息写入所述初始压缩文件的目标区域中。则在进行数据解压过程中,在实际应用中,目标压缩包基于签名信息以及初始压缩文件生成,目标压缩包中的文件结构与初始压缩文件的文件结构强相关,在一些实施场景中,目标压缩包中的文件结构与初始压缩文件的文件结构相同。第二设备可以在签名写入类型为数据插入类型的情况下,直接获取目标压缩包的文件结构,然后基于该文件结构来确定所述签名信息对应的第二目标区域。
进一步的,目标压缩包的文件结构可以仅包括前文件头区、压缩数据区以及尾文件头区,其中,压缩数据区主要用于存储对源文件压缩后的压缩数据。进一步的,以7z压缩方式为例,7z压缩方式压缩后的压缩数据文件的压缩结构即为前文件头区、压缩数据区以及尾文件头区。在本申请中,第二设备可根据目标压缩包的压缩生成规则然后确定文件结构,通常在数据插入类型下,签名信息插入在压缩数据区中,第二设备可以从所述目标压缩包的所述压缩数据区中确定第二目标区域。
S4051、第二设备获取所述目标压缩包的文件结构,所述目标压缩包的文件结构包括前文件头区、压缩数据区以及尾文件头区。
根据一些实施例中,前文件头区,如"SignatureHeader".它通常是由较短的固定字节构成,如7z压缩后的文件结构通常可以由32个字节定长的,前文件头区通常其实记录的信息很少,前文件头区的主要用于记录尾文件头区的位置和目标压缩方式(如7z压缩方式)的版本号,压缩数据的主要结构通常可以存在尾文件头区中。
根据一些实施例中,压缩数据区,采用目标压缩方式将源文件压缩成若干个数据包,也即"Packedstreams",就是数据包的意思,压缩数据区就是按顺序存储这些"Packedstreams",每个数据包的位置和大小信息都会记录在尾文件头区中,解压的时候就会从这里读出各数据包,然后解压出来,其中两辆数据包之间相互独立,这里压缩数据区即由多个压缩数据包简单的排布压缩后的数据存储区域。可以理解的是,在本申请中,第二设备在数据解压时,可以从多个压缩数据包中来确定两两压缩数据包中的分割位置,然后在从分割位置处确定第一设备插入签名信息的目标区域。
示意性的,尾文件头区,在实际应用中尾文件头区存储每个数据包对应的包信息,包信息包括但不限于包的位置、包的大小信息、包名、文件(包)时间等。
S4052、从所述目标压缩包的所述压缩数据区中确定第二目标区域
在一种可行的实施方式中,第二设备可以获取所述目标压缩包对应的文件标识。所述文件标识包括但不限于版本号、文件类型、文件名称等,在实际应用场景中,一种获取方式可以是第二设备在获取目标压缩包时随之获取到的针对目标压缩包的详细信息,该详细信息中包含对目标压缩包的相关信息说明,也包含目标压缩包的文件标识,如版本号等;一种获取方式可以是第二设备在尾文件区中获取到的,也即第二设备对目标压缩包的尾文件区中的数据进行解析可以获取到该文件标识。
进一步的,第二设备基于预设的参考文件标识与参考位置的映射关系,其中所述映射关系可以是以列表、集合、指针存储等方式进行表征,实际应用中只需基于目标压缩包的文件标识即可获取到对应的签名写入类型。例如可以是根据文件版本号与参考位置的对应关系,不同的源文件版本号对应不同的参考位置。
进一步的,上述预设的参考文件标识与参考位置的映射关系可以在实际应用中由第一设备与第二设备协商确定,或由第一设备同步至第二设备(也即对最终压缩包进行解压的设备),以便于第二设备可以基于该映射关系和相应的文件标识(如版本号)来准确获取到签名信息。
进一步的,第二设备从所述目标压缩包的所述压缩数据区中确定所述文件标识对应的目标位置之后,可以基于确定该目标位置指示的第二目标区域;其中,目标位置可以理解为一指示位置,在未插入签名信息之前该位置为两两数据包的分隔位置,则第二设备可以以目标位置为基准,针对目标位置周侧的数据包进行逐字符遍历,从而确定目标位置周侧两两数据包的位置,如确定目标位置之前的上一数据包的包尾和目标位置之后的上一数据包的包头,“上一数据包的包尾”与“目标位置之后的上一数据包的包头”之间的区域也即所述目标位置指示的第二目标区域。
根据一些实施例中,第一设备在进行签名信息写入过程中,可以确定签名信息的数据长度,然后基于目标位置、所述数据长度以及签名写入类型,生成签名解析信息,具体实现中,第一设备可以对目标位置、所述数据长度以及所述签名写入类型进行数据封装,然后生成包含目标位置、所述数据长度以及所述签名写入类型的签名解析信息,最后第一设备将所述签名解析信息插入至所述尾文件头区中,最终生成目标压缩包。
基于此,第二设备在获取到目标压缩包之后,可以在所述目标压缩包的所述尾文件头区中,获取签名解析信息;基于签名解析信息进行解析,然后得到目标位置、所述签名信息的数据长度以及签名写入类型,如可以得到该签名写入类型为数据插入类型。以便基于所述目标位置以及所述数据长度确定所述第二目标区域。
步骤S406:从所述第二目标区域处对所述目标压缩包进行解插入,得到所述第二目标区域外的所述初始压缩文件以及所述第二目标区域内的所述签名信息。
其中,所述初始压缩文件在第一设备采用目标压缩方式(如7z压缩方式)对源文件压缩时生成,所述初始压缩文件不包括签名结构区。
根据一些实施例中,第一设备在生成目标压缩包时,若签名写入类型为数据插入类型,则第一设备将签名信息插入至初始压缩文件的目标区域中,继而生成信息写入完后的目标压缩包,在实际应用中,本申请中目标压缩包的目标区域和初始压缩文件的目标区域通常相同;第二设备只需在确定针对签名信息所处的第二目标区域之后进行签名信息的解插入,提取目标压缩包中第二目标区域内的数据即可得到签名信息,然后通过获取目标区域外的数据即可的得到初始压缩文件(也即采用目标压缩方式对源文件进行压缩生成的压缩文件)。
步骤S407:基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
具体可参见步骤S303,此处不再赘述。
在本申请中,第二设备确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在第一设备采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;只需基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,即可生成所述源文件。压缩时通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中;第二设备可以快速获取到目标压缩包,以及通过确定针对签名信息的目标区域,即可快速获取到签名信息实现对高压缩率的压缩文件进行身份校验,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
请参见图7,为本申请实施例提供的一种文件处理系统的架构示意图。如图7所示,所述文件处理系统100包括第一设备100和第二设备集群。所述第二设备集群可以包括多个第二设备,如图7所示,具体包括第二设备1、第二设备2、…、第二设备n,n为大于0的整数。
第一设备100可以是具有文件处理功能的电子设备,也可以是单独的服务器设备,例如:机架式、刀片、塔式、或者机柜式的服务器设备,或采用工作站、大型计算机等具备较强计算能力硬件设备;也可以是采用多个服务器组成的服务器集群,所述服务集群中的各服务器可以是以对称方式组成的,其中每台服务器在业务链路中功能等价、地位等价,各服务器均可单独对外提供服务,所述单独提供服务可以理解为无需另外的服务器的辅助。
第二设备10可以是具有通信功能的电子设备,该电子设备包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigital assistant,PDA)、5G网络或未来演进网络中的终端设备等。
所述第一设备100与第二设备集群中任一第二设备通过网络进行交互通信,网络可以是无线网络,也可以是有线网络,无线网络包括但不限于蜂窝网络、无线局域网、红外网络或蓝牙网络,有线网络包括但不限于以太网、通用串行总线(universal serial bus,USB)或控制器局域网络。
在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据(如目标压缩包)。此外还可以使用诸如安全套接字层(Secure SocketLayer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(VirtualPrivate Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
另外,上述实施例提供的文件处理系统实施例与一些实施例中的所述文件处理方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图8,其示出了本申请一个示例性实施例提供的文件处理装置的结构示意图。该文件处理装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括文件压缩模块11、签名获取模块12和压缩包生成模块13。
文件压缩模块11,用于采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区;
签名获取模块12,用于获取所述源文件的签名信息;
压缩包生成模块13,用于将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
可选的,所述签名获取模块12,具体用于:
对所述初始压缩文件进行签名,得到所述源文件的签名信息;以及,
对所述源文件进行签名,得到所述源文件的签名信息。
可选的,如图9所示,所述压缩包生成模块13,包括:
写入类型确定单元131,用于确定所述签名信息的签名写入类型;
签名信息写入单元132,用于基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
可选的,所述签名信息写入单元132,具体用于:
若所述签名写入类型为数据拼接类型,则获取所述初始压缩文件的文件标志,基于所述文件标志将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包;
若所签名处理类型为数据插入类型,则获取所述初始压缩文件的文件结构,基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
可选的,所述签名信息写入单元132,具体用于:
若所述文件标志为魔数标志,将所述魔数标志之前的参考写入区域作为所述目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的参考写入区域作为所述目标区域;
将所述签名信息写入至与所述初始压缩文件的所述目标区域上,生成目标压缩包。
可选的,所述初始压缩文件的文件结构包括前文件头区、压缩数据区以及尾文件头区,所述签名信息写入单元132,具体用于:
在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置,并确定所述目标位置指示的目标区域;
将所述签名信息插入至所述目标区域上,生成目标压缩包。
可选的,所述签名信息写入单元132,具体用于:
获取所述源文件对应的文件标识;基于预设的参考文件标识与参考位置的映射关系,确定所述文件标识对应的目标位置;
或,
确定各所述数据包的包分隔位置,从各所述包分隔位置中随机确定目标位置。
可选的,所述装置1,具体用于:
确定所述签名信息的数据长度;
基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息;
将所述签名解析信息插入至所述尾文件头区中。
可选的,所述文件压缩模块11,具体用于:
获取快应用对应的源应用数据,采用7z压缩方式对所述源应用数据进行压缩。
需要说明的是,上述实施例提供的文件处理装置在执行文件处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件处理装置与文件处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,第一设备采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
请参见图10,其示出了本申请一个示例性实施例提供的文件处理装置的结构示意图。该文件处理装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置2包括区域确定模块21、压缩解析模块22和签名校验模块23。
区域确定模块21,用于确定目标压缩包中针对签名信息的目标区域;
压缩解析模块22,用于基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
签名校验模块23,用于基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
可选的,所述区域确定模块21,具体用于:
确定针对目标压缩包中的所述签名信息对应的签名写入类型,基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域。
可选的,如图11所示,所述区域确定模块21,包括:
第一区域确定单元211,用于若所述签名写入类型为数据拼接类型,则获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域;
第二区域确定单元212,用于若所述签名写入类型为数据插入类型,则获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域。
可选的,所述第一区域确定单元211,具体用于:
若所述文件标志为魔数标志,将所述魔数标志之前的第一区域作为所述第一目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的第二区域作为所述第一目标区域。
可选的,当所述签名写入类型为所述数据拼接类型时,所述压缩解析模块22,具体用于:
从所述第一目标区域处对所述目标压缩包进行解拼接,得到所述第一目标区域外的初始压缩文件以及所述第一目标区域内的所述签名信息。
可选的,所述第二区域确定单元212,具体用于:
获取所述目标压缩包的文件结构,所述目标压缩包的文件结构包括前文件头区、压缩数据区以及尾文件头区;
从所述目标压缩包的所述压缩数据区中确定第二目标区域。
可选的,所述第二区域确定单元212,具体用于:
获取所述目标压缩包对应的文件标识,所述文件标识与所述源文件相关联;
基于预设的参考文件标识与参考位置的映射关系,从所述目标压缩包的所述压缩数据区中确定所述文件标识对应的目标位置,并确定所述目标位置指示的第二目标区域。
可选的,所述第二区域确定单元212,具体用于:
在所述目标压缩包的所述尾文件头区中,获取签名解析信息;
基于签名解析信息进行解析,得到目标位置、所述签名信息的数据长度以及签名写入类型;
基于所述目标位置以及所述数据长度确定所述第二目标区域。
可选的,当所述签名写入类型为数据插入类型时,所述压缩解析模块22,具体用于:
从所述第二目标区域处对所述目标压缩包进行解插入,得到所述第二目标区域外的所述初始压缩文件以及所述第二目标区域内的所述签名信息。
可选的,所述签名校验模块23,具体用于:
采用7z解压方式对所述初始压缩文件进行解压,得到快应用对应的源应用数据。
可选的,所述装置2,具体用于:
确定目标压缩包对应的文件压缩方式;
若所述文件压缩方式为目标压缩方式,则执行所述确定目标压缩包中针对签名信息的目标区域的步骤。
可选的,所述装置2,具体用于:
获取所述目标压缩包的魔数标志,基于所述魔数标志确定目标压缩包对应的文件压缩方式。
需要说明的是,上述实施例提供的文件处理装置在执行文件处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件处理装置与文件处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,第二设备确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在第一设备采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;只需基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,即可生成所述源文件。压缩时通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中;第二设备可以快速获取到目标压缩包,以及通过确定针对签名信息的目标区域,即可快速获取到签名信息实现对高压缩率的压缩文件进行身份校验,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图7所示实施例的所述文件处理方法,具体执行过程可以参见图1-图7所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图7所示实施例的所述文件处理方法,具体执行过程可以参见图1-图7所示实施例的具体说明,在此不进行赘述。
请参见图12,为本申请实施例提供了一种电子设备的结构示意图。如图12所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文件处理应用程序。
在图12所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的文件处理应用程序,并具体执行以下操作:
采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区;
获取所述源文件的签名信息;
将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
在一个实施例中,所述处理器1001在执行所述获取针对所述源文件的签名信息时,具体执行以下步骤:
对所述初始压缩文件进行签名,得到所述源文件的签名信息;
或,
对所述源文件进行签名,得到所述源文件的签名信息。
在一个实施例中,所述处理器1001在执行所述将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包时,具体执行以下步骤:
确定所述签名信息的签名写入类型;
基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
在一个实施例中,所述处理器1001在执行所述基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包时,具体执行以下步骤:
若所述签名写入类型为数据拼接类型,则获取所述初始压缩文件的文件标志,基于所述文件标志将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包;
若所签名处理类型为数据插入类型,则获取所述初始压缩文件的文件结构,基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
在一个实施例中,所述处理器1001在执行所述基于所述文件标志将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包时,具体执行以下步骤:
若所述文件标志为魔数标志,将所述魔数标志之前的参考写入区域作为所述目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的参考写入区域作为所述目标区域;
将所述签名信息写入至与所述初始压缩文件的所述目标区域上,生成目标压缩包。
在一个实施例中,所述处理器1001在执行所述初始压缩文件的文件结构包括前文件头区、压缩数据区以及尾文件头区,
所述基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包时,具体执行以下步骤:
在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置,并确定所述目标位置指示的目标区域;
将所述签名信息插入至所述目标区域上,生成目标压缩包。
在一个实施例中,所述处理器1001在执行所述在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置时,具体执行以下步骤:
获取所述源文件对应的文件标识;基于预设的参考文件标识与参考位置的映射关系,确定所述文件标识对应的目标位置;
或,
确定各所述数据包的包分隔位置,从各所述包分隔位置中随机确定目标位置。
在一个实施例中,所述处理器1001在执行所述将所述签名信息插入至所述目标区域上之后,还执行以下步骤:
确定所述签名信息的数据长度;
基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息;
将所述签名解析信息插入至所述尾文件头区中。
在一个实施例中,所述处理器1001在执行所述采用目标压缩方式对源文件进行压缩时,具体执行以下步骤:
获取快应用对应的源应用数据,采用7z压缩方式对所述源应用数据进行压缩。
在本申请实施例中,第一设备采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区,获取所述源文件的签名信息,将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
请参考图13,其示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。存储数据区还可以存储电子设备在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。
参见图14所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为Android系统为例,存储器120中存储的程序和数据如图15所示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为电子设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、文件处理程序等。
以操作系统为IOS系统为例,存储器120中存储的程序和数据如图16所示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在电子设备上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图16所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在电子设备的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本申请实施例中,各步骤的执行主体可以是上文介绍的电子设备。可选地,各步骤的执行主体为电子设备的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本申请实施例对此不作限定。
本申请实施例的电子设备,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquid crystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用电子设备101上的显示设备,来查看显示的文字、图像、视频等信息。所述电子设备可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
在图13所示的电子设备中,其中电子设备可以是一种终端,处理器110可以用于调用存储器120中存储的文件处理应用程序,并具体执行以下操作:
确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
在一个实施例中,所述处理器110在执行所述确定目标压缩包中针对签名信息的目标区域时,具体执行以下步骤:
确定针对目标压缩包中的所述签名信息对应的签名写入类型,基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域。
在一个实施例中,所述处理器110在执行所述基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域时,具体执行以下步骤:
若所述签名写入类型为数据拼接类型,则获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域;
若所述签名写入类型为数据插入类型,则获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域。
在一个实施例中,所述处理器110在执行所述获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域时,具体执行以下步骤:
若所述文件标志为魔数标志,将所述魔数标志之前的第一区域作为所述第一目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的第二区域作为所述第一目标区域。
在一个实施例中,所述处理器110在执行当所述签名写入类型为所述数据拼接类型时,
所述基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息时,具体执行以下步骤:
从所述第一目标区域处对所述目标压缩包进行解拼接,得到所述第一目标区域外的初始压缩文件以及所述第一目标区域内的所述签名信息。
在一个实施例中,所述处理器110在执行所述获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域时,具体执行以下步骤:
获取所述目标压缩包的文件结构,所述目标压缩包的文件结构包括前文件头区、压缩数据区以及尾文件头区;
从所述目标压缩包的所述压缩数据区中确定第二目标区域。
在一个实施例中,所述处理器110在执行所述从所述目标压缩包的所述压缩数据区中确定第二目标区域,包括:
获取所述目标压缩包对应的文件标识,所述文件标识与所述源文件相关联;
基于预设的参考文件标识与参考位置的映射关系,从所述目标压缩包的所述压缩数据区中确定所述文件标识对应的目标位置,并确定所述目标位置指示的第二目标区域。
在一个实施例中,所述处理器110在执行所述从所述目标压缩包的所述压缩数据区中确定第二目标区域时,具体执行以下步骤:
在所述目标压缩包的所述尾文件头区中,获取签名解析信息;
基于签名解析信息进行解析,得到目标位置、所述签名信息的数据长度以及签名写入类型;
基于所述目标位置以及所述数据长度确定所述第二目标区域。
在一个实施例中,当所述签名写入类型为数据插入类型时,所述处理器110在执行所述基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息时,具体执行以下步骤:
从所述第二目标区域处对所述目标压缩包进行解插入,得到所述第二目标区域外的所述初始压缩文件以及所述第二目标区域内的所述签名信息。
在一个实施例中,所述处理器110在执行所述对所述初始压缩文件进行解压,生成源文件,包括:
采用7z解压方式对所述初始压缩文件进行解压,得到快应用对应的源应用数据。
在一个实施例中,所述处理器110在执行所述确定目标压缩包中针对签名信息的目标区域之前,还执行以下步骤:
确定目标压缩包对应的文件压缩方式;
若所述文件压缩方式为目标压缩方式,则执行所述确定目标压缩包中针对签名信息的目标区域的步骤。
在一个实施例中,所述处理器110在执行所述确定目标压缩包对应的文件压缩方式时,具体执行以下步骤:
获取所述目标压缩包的魔数标志,基于所述魔数标志确定目标压缩包对应的文件压缩方式。
在本申请实施例中,第二设备确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在第一设备采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;只需基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,即可生成所述源文件。压缩时通过采用高压缩率的目标压缩方式对源文件进行压缩得到初始压缩文件并获取相应的签名信息,然后将签名信息写入至初始压缩文件中;第二设备可以快速获取到目标压缩包,以及通过确定针对签名信息的目标区域,即可快速获取到签名信息实现对高压缩率的压缩文件进行身份校验,可以在保证高压缩率的同时,可以实现不含签名结构区的高压缩率文件进行签名校验,在需要签名验证的场景下,高压缩率的文件压缩包可以大幅降低数据传输开销,提升数据传输速度的同时,保证了压缩文件获取过程中的文件安全性。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (23)
1.一种文件处理方法,其特征在于,应用于第一设备,所述方法包括:
采用目标压缩方式对源文件进行压缩,生成初始压缩文件,所述初始压缩文件不包括签名结构区;
获取所述源文件的签名信息;
将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
2.根据权利要求1所述的方法,其特征在于,所述获取针对所述源文件的签名信息,包括:
对所述初始压缩文件进行签名,得到所述源文件的签名信息;
或,
对所述源文件进行签名,得到所述源文件的签名信息。
3.根据权利要求1所述的方法,其特征在于,所述将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包,包括:
确定所述签名信息的签名写入类型;
基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
4.根据权利要求3所述的方法,其特征在于,所述基于所述签名写入类型将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包,包括:
若所述签名写入类型为数据拼接类型,则获取所述初始压缩文件的文件标志,基于所述文件标志将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包;
若所签名处理类型为数据插入类型,则获取所述初始压缩文件的文件结构,基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包。
5.根据权利要求4所述的方法,其特征在于,所述基于所述文件标志将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包,包括:
若所述文件标志为魔数标志,将所述魔数标志之前的参考写入区域作为所述目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的参考写入区域作为所述目标区域;
将所述签名信息写入至与所述初始压缩文件的所述目标区域上,生成目标压缩包。
6.根据权利要求4所述的方法,其特征在于,所述初始压缩文件的文件结构包括前文件头区、压缩数据区以及尾文件头区,
所述基于所述文件结构将所述签名信息写入所述初始压缩文件的目标区域,生成目标压缩包,包括:
在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置,并确定所述目标位置指示的目标区域;
将所述签名信息插入至所述目标区域上,生成目标压缩包。
7.根据权利要求6所述的方法,其特征在于,所述在所述压缩数据区包括的至少一个数据包中确定针对所述签名信息的目标位置,包括:
获取所述源文件对应的文件标识;基于预设的参考文件标识与参考位置的映射关系,确定所述文件标识对应的目标位置;
或,
确定各所述数据包的包分隔位置,从各所述包分隔位置中随机确定目标位置。
8.根据权利要求6所述的方法,其特征在于,所述将所述签名信息插入至所述目标区域上之后,还包括:
确定所述签名信息的数据长度;
基于所述目标位置、所述数据长度以及所述签名写入类型,生成签名解析信息;
将所述签名解析信息插入至所述尾文件头区中。
9.根据权利要求1所述的方法,其特征在于,所述采用目标压缩方式对源文件进行压缩,包括:
获取快应用对应的源应用数据,采用7z压缩方式对所述源应用数据进行压缩。
10.一种文件处理方法,其特征在于,应用于第二设备,所述方法包括:
确定目标压缩包中针对签名信息的目标区域;
基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,所述初始压缩文件在采用目标压缩方式对源文件压缩时生成,所述初始压缩文件不包括签名结构区;
基于所述签名信息进行签名校验,并在签名校验通过后对所述初始压缩文件进行解压,生成所述源文件。
11.根据权利要求10所述的方法,其特征在于,所述确定目标压缩包中针对签名信息的目标区域,包括:
确定针对目标压缩包中的所述签名信息对应的签名写入类型,基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域。
12.根据权利要求11所述的方法,其特征在于,所述基于所述签名写入类型在所述目标压缩包中确定所述签名信息对应的目标区域,包括:
若所述签名写入类型为数据拼接类型,则获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域;
若所述签名写入类型为数据插入类型,则获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域。
13.根据权利要求12所述的方法,其特征在于,所述获取所述目标压缩包中的文件标志,基于所述文件标志确定所述签名信息对应的第一目标区域,包括:
若所述文件标志为魔数标志,将所述魔数标志之前的第一区域作为所述第一目标区域;
若所述文件标志为尾文件标志,将所述尾文件标志之后的第二区域作为所述第一目标区域。
14.根据权利要求12所述的方法,其特征在于,当所述签名写入类型为所述数据拼接类型时,
所述基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,包括:
从所述第一目标区域处对所述目标压缩包进行解拼接,得到所述第一目标区域外的初始压缩文件以及所述第一目标区域内的所述签名信息。
15.根据权利要求12所述的方法,其特征在于,所述获取所述目标压缩包的文件结构,基于所述文件结构确定所述签名信息对应的第二目标区域,包括:
获取所述目标压缩包的文件结构,所述目标压缩包的文件结构包括前文件头区、压缩数据区以及尾文件头区;
从所述目标压缩包的所述压缩数据区中确定第二目标区域。
16.根据权利要求15所述的方法,其特征在于,所述从所述目标压缩包的所述压缩数据区中确定第二目标区域,包括:
获取所述目标压缩包对应的文件标识,所述文件标识与所述源文件相关联;
基于预设的参考文件标识与参考位置的映射关系,从所述目标压缩包的所述压缩数据区中确定所述文件标识对应的目标位置,并确定所述目标位置指示的第二目标区域。
17.根据权利要求15所述的方法,其特征在于,所述从所述目标压缩包的所述压缩数据区中确定第二目标区域,包括:
在所述目标压缩包的所述尾文件头区中,获取签名解析信息;
基于签名解析信息进行解析,得到目标位置、所述签名信息的数据长度以及签名写入类型;
基于所述目标位置以及所述数据长度确定所述第二目标区域。
18.根据权利要求11所述的方法,其特征在于,当所述签名写入类型为数据插入类型时,
所述基于所述目标区域对所述目标压缩包进行解析,得到初始压缩文件以及所述签名信息,包括:
从所述第二目标区域处对所述目标压缩包进行解插入,得到所述第二目标区域外的所述初始压缩文件以及所述第二目标区域内的所述签名信息。
19.根据权利要求10所述的方法,其特征在于,所述对所述初始压缩文件进行解压,生成源文件,包括:
采用7z解压方式对所述初始压缩文件进行解压,得到快应用对应的源应用数据。
20.根据权利要求10所述的方法,其特征在于,所述确定目标压缩包中针对签名信息的目标区域之前,还包括:
确定目标压缩包对应的文件压缩方式;
若所述文件压缩方式为目标压缩方式,则执行所述确定目标压缩包中针对签名信息的目标区域的步骤。
21.根据权利要求20所述的方法,其特征在于,所述确定目标压缩包对应的文件压缩方式,包括:
获取所述目标压缩包的魔数标志,基于所述魔数标志确定目标压缩包对应的文件压缩方式。
22.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~9或10~21任意一项的方法步骤。
23.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~9或10~21任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011497553.4A CN112506878A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011497553.4A CN112506878A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112506878A true CN112506878A (zh) | 2021-03-16 |
Family
ID=74922215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011497553.4A Pending CN112506878A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506878A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343792A (zh) * | 2021-05-21 | 2021-09-03 | 贵州电网有限责任公司 | 一种智能变电站保护定值颗粒化校核系统 |
CN113472818A (zh) * | 2021-09-03 | 2021-10-01 | 深圳墨世科技有限公司 | 一种版权音频数据处理方法、服务器及移动终端 |
CN116069742A (zh) * | 2023-01-18 | 2023-05-05 | 广州通则康威智能科技有限公司 | 一种压缩和解压方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301343A (zh) * | 2017-06-19 | 2017-10-27 | 大连中科创达软件有限公司 | 安全数据处理方法、装置及电子设备 |
CN108196851A (zh) * | 2017-12-28 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 应用发布方法及装置 |
CN111273920A (zh) * | 2020-01-16 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种向安装包写入数据的方法、装置及存储介质 |
CN111353148A (zh) * | 2020-02-07 | 2020-06-30 | 贝壳技术有限公司 | 一种确定应用程序是否被重打包的方法及设备 |
-
2020
- 2020-12-17 CN CN202011497553.4A patent/CN112506878A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301343A (zh) * | 2017-06-19 | 2017-10-27 | 大连中科创达软件有限公司 | 安全数据处理方法、装置及电子设备 |
CN108196851A (zh) * | 2017-12-28 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 应用发布方法及装置 |
CN111273920A (zh) * | 2020-01-16 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种向安装包写入数据的方法、装置及存储介质 |
CN111353148A (zh) * | 2020-02-07 | 2020-06-30 | 贝壳技术有限公司 | 一种确定应用程序是否被重打包的方法及设备 |
Non-Patent Citations (3)
Title |
---|
MYJ: "APK瘦身—(四)android res guard 资源混淆", Retrieved from the Internet <URL:https://mayinjian.wordpress.com/2017/11/24/android-res-guard-资源混淆-apk瘦身/> * |
NEIL: "7z文件格式及其源码的分析(三)", Retrieved from the Internet <URL:https://blog.neilpang.com/7z文件格式及其源码的分析三/> * |
QQ音乐技术团队: "分析 Android V2 新签名打包机制", Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1006237> * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343792A (zh) * | 2021-05-21 | 2021-09-03 | 贵州电网有限责任公司 | 一种智能变电站保护定值颗粒化校核系统 |
CN113472818A (zh) * | 2021-09-03 | 2021-10-01 | 深圳墨世科技有限公司 | 一种版权音频数据处理方法、服务器及移动终端 |
CN113472818B (zh) * | 2021-09-03 | 2021-11-30 | 深圳墨世科技有限公司 | 一种版权音频数据处理方法、服务器及移动终端 |
CN116069742A (zh) * | 2023-01-18 | 2023-05-05 | 广州通则康威智能科技有限公司 | 一种压缩和解压方法及装置 |
CN116069742B (zh) * | 2023-01-18 | 2023-10-03 | 广州通则康威智能科技有限公司 | 一种压缩和解压方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506878A (zh) | 文件处理方法、装置、存储介质及电子设备 | |
CN113972990B (zh) | 数据校验方法、装置、存储介质及电子设备 | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
CN113778419B (zh) | 多媒体数据的生成方法、装置、可读介质及电子设备 | |
US20240177374A1 (en) | Video processing method, apparatus and device | |
CN113110829B (zh) | 多ui组件库数据处理方法及装置 | |
JP2023522266A (ja) | マルチメディアデータ配信の方法、装置、デバイス及び媒体 | |
CN112214653A (zh) | 字符串识别方法、装置、存储介质及电子设备 | |
CN114584579A (zh) | 一种仪表系统与娱乐主机系统多屏传输方法、装置及车辆 | |
EP4134904A1 (en) | Image special effect configuration method, image recognition method, apparatuses, and electronic device | |
CN111752644A (zh) | 接口模拟方法、装置、设备及存储介质 | |
CN111008178B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113158244A (zh) | 数据隐私保护方法、装置、存储介质及电子设备 | |
CN113836538A (zh) | 数据模型处理方法、装置、服务器及存储介质 | |
Tech Note: Shader Snippets for Efficient 2D Dithering | Oculus | ||
CN111324586B (zh) | 一种基于缓存的图片显示方法、装置、电子设备及介质 | |
CN115145660A (zh) | 多媒体播放方法、装置、存储介质及终端设备 | |
CN111008006A (zh) | Rfc文件的修改方法、装置、存储介质及终端 | |
CN111949825A (zh) | 在视频中添加和显示物品信息的方法、电子设备及存储介质 | |
CN112486923A (zh) | 文件更新方法、装置及系统 | |
CN113972989A (zh) | 数据校验方法、装置、存储介质及电子设备 | |
CN111538997A (zh) | 图像处理方法、装置、存储介质以及终端 | |
CN116702218B (zh) | 小程序中三维模型的渲染方法、装置、终端及存储介质 | |
CN112579072B (zh) | 浏览器打包方法、装置、存储介质以及终端 | |
CN107800618B (zh) | 图片推荐方法、装置、终端及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |