CN104866351B - 一种数据传输方法、服务端及客户端 - Google Patents
一种数据传输方法、服务端及客户端 Download PDFInfo
- Publication number
- CN104866351B CN104866351B CN201510278899.8A CN201510278899A CN104866351B CN 104866351 B CN104866351 B CN 104866351B CN 201510278899 A CN201510278899 A CN 201510278899A CN 104866351 B CN104866351 B CN 104866351B
- Authority
- CN
- China
- Prior art keywords
- file
- client
- application listing
- intended application
- listing file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005540 biological transmission Effects 0.000 title claims abstract description 28
- 230000006835 compression Effects 0.000 claims abstract description 33
- 238000007906 compression Methods 0.000 claims abstract description 33
- 238000012856 packing Methods 0.000 claims abstract description 29
- 238000010200 validation analysis Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据传输方法、服务端及客户端。本发明实施例方法包括:获取客户端上传的客户端应用列表文件;判断目标应用列表文件中的文件是否存在于客户端应用列表文件中,以及判断目标应用列表文件中的文件与客户端应用列表文件中的文件的散列值sha2是否一致;当目标应用列表文件中的文件不存在于客户端应用列表文件中时,将不存在的文件放入增量文件列表中;当目标应用列表文件中的文件与客户端应用列表文件中的文件的散列值sha2不一致时,将不一致的文件放入增量文件列表中;对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩,生成增量升级包,以使客户端通过增量升级包进行应用包的升级。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用于POS终端的数据传输方法、服务端及客户端。
背景技术
POS(point of sale,销售点)终端是一种多功能终端,把它安装在信用卡的特约商户和受理网点中与计算机联成网络,就能实现电子资金自动转帐,它具有支持消费、预授权、余额查询和转帐等功能,使用起来安全、快捷、可靠。
POS终端在应用的过程中,需要及时更新应用程序,在更新应用程序的同时,需要考虑数据传输的安全性;且部分POS只支持MODEM(调制解调器)通讯,应用程序在更新时下载速度较慢;因此,需要一种优化的更新方法,在有限的网络资源下,以保障数据安全传输同时,提高应用程序的更新速度。
发明内容
本发明实施例提供了一种数据传输方法、服务端及客户端,能够保障数据安全传输同时,提高应用程序的更新速度。
本发明第一方面提供了一种数据传输方法,包括:
服务端获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
所述服务端判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
当所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,所述服务端将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
当所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
所述服务端对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
本发明第二方面提供了一种数据传输方法,包括:
客户端上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
所述客户端根据获取的所述增量升级包进行应用包的升级。
结合本发明的第二方面,在本发明第二方面的第一种实现方式中,所述客户端获取所述服务端对目标应用列表文件、所述客户端应用列表文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包之后还包括:
所述客户端对所述增量升级包进行解析验证;
所述客户端对所述客户端应用列表文件进行备份。‘
结合本发明第二方面的第一种实现方式,在本发明第二方面的第二种实现方式中,所述客户端对所述增量升级包进行解析验证具体包括:
所述客户端将所述增量升级包解压到临时升级目录;
所述客户端获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录。
结合本发明第二方面的第一种实现方式、或第二方面的第二种实现方式,在本发明第二方面的第三种实现方式中,所述客户端对所述客户端应用列表文件进行备份具体包括:
所述客户端创建临时备份目录;
所述客户端将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
所述客户端将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
所述客户端将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中。
结合本发明第二方面的第三种实现方式,在本发明第二方面的第四种实现方式中,所述客户端根据获取的所述增量升级包进行应用包的升级具体包括:
所述客户端将所述临时升级目录中文件复制到应用目录中,并通知所述服务端升级任务完成;
所述客户端删除所述临时升级目录和所述临时备份目录。
结合本发明第二方面的第四种实现方式,在本发明第二方面的第五种实现方式中,所述客户端删除所述临时升级目录和所述临时备份目录之前还包括:
当所述复制出错时,所述客户端从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败。
本发明第三方面提供了一种服务端,包括:
获取单元,用于获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和散列信息;
判断单元,用于判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
第一处理单元,用于在所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
第二处理单元,用于在所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
压缩单元,用于对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
本发明第四方面提供了一种客户端,包括:
上传模块,用于上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
获取模块,用于获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
升级模块,用于根据获取的所述增量升级包进行应用包的升级。
结合本发明的第四方面,在本发明第四方面的第一种实现方式中,所述客户端还包括:
解析模块,用于对所述增量升级包进行解析验证;
备份模块,用于对所述客户端应用列表文件进行备份。
结合本发明第四方面的第一种实现方式,在本发明第四方面的第二种实现方式中,所述解析模块具体包括:
解压子模块,用于将所述增量升级包解压到临时升级目录;
第一验证子模块,用于获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
第二验证子模块,用于解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
第三验证子模块,用于验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
第四验证子模块,用于验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录。
结合本发明第四方面的第一种实现方式、或第四方面的第二种实现方式,在本发明第四方面的第三种实现方式中,所述备份模块具体包括:
创建子模块,用于创建临时备份目录;
第一移动子模块,用于将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
第二移动子模块,用于将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
第三移动子模块,用于将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中。
结合本发明第四方面的第三种实现方式,在本发明第四方面的第四种实现方式中,所述升级模块具体包括:
复制子模块,用于将所述临时升级目录中文件复制到应用目录中;
删除子模块,用于删除所述临时升级目录和所述临时备份目录,并通知所述服务端升级任务完成。
结合本发明第四方面的第四种实现方式,在本发明第四方面的第五种实现方式中,所述升级模块还包括:
恢复模块,用于在所述复制子模块复制出错时,从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败。
从以上技术方案可以看出,本发明实施例具有以下优点:服务端获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;所述服务端判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;当所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,所述服务端将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;当所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;所述服务端对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。本发明采用更安全的散列算法,避免了通过散列攻击伪造相同散列值的非法文件;且通过对文件进行打包压缩以及对应用列表文件进行签名认证,避免了伪造应用升级文件;从而保障数据安全传输同时,提高了应用程序的更新速度。
附图说明
图1为本发明所提供的数据传输方法的一个实施例流程示意图;
图2为本发明所提供的数据传输方法的另一实施例流程示意图;
图3为本发明所提供的数据传输方法的另一实施例流程示意图;
图4为本发明所提供的数据传输方法的另一实施例流程示意图;
图5为本发明所提供的数据传输方法的另一实施例流程示意图;
图6为本发明所提供的数据传输方法的另一实施例流程示意图;
图7为本发明所提供的服务端的一个实施例结构示意图;
图8为本发明所提供的客户端的一个实施例结构示意图;
图9为本发明所提供的客户端的另一实施例结构示意图;
图10为本发明所提供的客户端的另一实施例结构示意图;
图11为本发明所提供的客户端的另一实施例结构示意图;
图12为本发明所提供的客户端的另一实施例结构示意图;
图13为本发明所提供的客户端的另一实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述各个用户或终端,但用户或终端不应限于这些术语。这些术语仅用来将用户或终端彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一用户也可以被称为第二用户,类似地,第二用户也可以被称为第一用户;同样的,第二用户也可以被称为第三用户等等,本发明实施例对此不做限制。
请参阅图1,本发明所提供的数据传输方法的一个实施例包括:
101、服务端获取客户端上传的客户端应用列表文件;
需要说明的是,服务端获取客户端上传的客户端应用列表文件manifest.xml;其中,该客户端还需上传终端编号到服务端,该服务端通过终端编号,查询该终端的升级任务;所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;该应用列表文件类型为manifest.xml,是描述应用包中文件及散列信息的文件,例如,一个manifest.xml文件的例子为:
102、所述服务端判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
需要说明的是,服务端可先通过解析客户端manifest.xml文件,验证应用的名称是否匹配;如果不匹配,返回无此应用给客户端,同时断开客户端连接,若匹配,则再进行后续判断。可以理解的是,该目标应用列表文件为该服务端中,客户端进行应用程序升级时所需的文件;其中,sha2为文件的散列值,例如manifest.xml文件项中path为文件的路径,sha2为文件的散列值。
103、当所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,所述服务端将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
需要说明的是,服务端遍历升级任务中的目标manifest.xml中的文件列表,如果文件不存在客户端manifest.xml中,则将此文件放到增量文件列表中。
104、当所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
需要说明的是,服务端遍历升级任务中的目标manifest.xml中的文件列表,将与客户端manifest.xml中sha2值不一致的文件放到增量文件列表中。
105、所述服务端对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
需要说明的是,服务端将目标manifest.xml、目标manifest.xml.sig、上述增量文件列表中的文件打包压缩为一个增量升级包;为了防止目标应用列表manifest.xml文件被篡改,增量升级包中还需要有目标manifest.xml的签名文件manifest.xml.sig。
本发明实施例中,服务端获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;所述服务端判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;当所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,所述服务端将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;当所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;所述服务端对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。本发明实施例通过采用更安全的散列算法,避免了通过散列攻击伪造相同散列值的非法文件;且通过对文件进行打包压缩以及对应用列表文件进行签名认证,避免了伪造应用升级文件;从而保障数据安全传输同时,提高了应用程序的更新速度。
请参阅图2,本发明所提供的数据传输方法的另一实施例包括:
201、客户端上传客户端应用列表文件到服务端;
其中,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
参见步骤101中相关说明,此处不作赘述。
202、所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;
其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
参见步骤102~105中相关说明,此处不作赘述。
203、所述客户端根据获取的所述增量升级包进行应用包的升级。
所述客户端通过所述增量升级包中的应用文件进行应用包的升级。
本发明实施例中,客户端上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;所述客户端根据获取的所述增量升级包进行应用包的升级。本发明实施例通过采用更安全的散列算法,避免了通过散列攻击伪造相同散列值的非法文件;且通过对文件进行打包压缩以及对应用列表文件进行签名认证,避免了伪造应用升级文件;从而保障数据安全传输同时,提高了应用程序的更新速度。
请参阅图3,本发明所提供的数据传输方法的另一实施例包括:
301、客户端上传客户端应用列表文件到服务端;
其中,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
参见步骤101中相关说明,此处不作赘述。
302、所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;
其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
参见步骤102~105中相关说明,此处不作赘述。
303、所述客户端对所述增量升级包进行解析验证;
该客户端下载并解压该增量升级包,并对该增量升级包进行验证。
304、所述客户端对所述客户端应用列表文件进行备份;
该客户端创建备份录,并对该客户端manifest.xml进行备份。
305、所述客户端根据获取的所述增量升级包进行应用包的升级。
所述客户端通过所述增量升级包中的应用文件进行应用包的升级。
本发明实施例中,所述客户端对所述增量升级包进行解析验证;并对所述客户端应用列表文件进行备份;从而避免了伪造的非法文件的攻击,提高了应用程序升级的安全性及可靠性。
请参阅图4,本发明所提供的数据传输方法的另一实施例包括:
401、客户端上传客户端应用列表文件到服务端;
其中,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
参见步骤101中相关说明,此处不作赘述。
402、所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;
其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
参见步骤102~105中相关说明,此处不作赘述。
403、所述客户端将所述增量升级包解压到临时升级目录;
该客户端下载该增量升级包,并将该增量升级包解压到一个临时升级目录。
404、所述客户端获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
该客户端通过目标manifest.xml.sig验证目标manifest.xml是否合法,若果不合法,则中止升级,删除临时升级目录。
405、所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
该客户端解析目标manifest.xml,验证应用名称是否匹配;如果不匹配,则中止升级,删除临时升级目录。
406、所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
该客户端遍历目标manifest.xml中的文件列表,如果文件的sha2值与客户端的不一致,通过sha2算法验证目标文件是否正确。如果sha2值不一致,中止升级,删除临时升级目录。
407、所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录;
该客户端遍历目标manifest.xml中的文件列表,如果目标manifest.xml中的文件,不存在于增量升级包中,也不存在于客户端本地或与客户端本地的文件sha2值不一致,中止升级,删除临时升级目录。
408、所述客户端对所述客户端应用列表文件进行备份;
该客户端创建备份录,并对该客户端manifest.xml进行备份。
409、所述客户端根据获取的所述增量升级包进行应用包的升级。
所述客户端通过所述增量升级包中的应用文件进行应用包的升级。
本发明实施例中,所述客户端将所述增量升级包解压到临时升级目录;所述客户端获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录;从而避免了通过散列攻击伪造相同散列值的非法文件,提高了应用程序升级的安全性及可靠性。
请参阅图5,本发明所提供的数据传输方法的另一实施例包括:
501、客户端上传客户端应用列表文件到服务端;
其中,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
502、所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;
其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
503、所述客户端将所述增量升级包解压到临时升级目录;
504、所述客户端获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
505、所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
506、所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
507、所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录;
需要说明的是,步骤501~507可对应参考步骤401~407相关说明,此处不再赘述。
508、所述客户端创建临时备份目录;
在备份所需文件前,该客户端需要创建临时备份目录。
509、所述客户端将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
该客户端将只存在于客户端manifest.xml中,而不存在于目标manifest.xml的文件,移动到临时备份目录中。
510、所述客户端将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
该客户端将客户端manifest.xml中的文件的sha2值与目标manifest.xml不一样的文件,移动到临时备份目录中。
511、所述客户端将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中;
该客户端将客户端manifest.xml、客户端manifest.xml.sig移动到临时备份目录中。
512、所述客户端根据获取的所述增量升级包进行应用包的升级。
所述客户端通过所述增量升级包中的应用文件进行应用包的升级。
本发明实施例中,所述客户端创建临时备份目录;所述客户端将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;所述客户端将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;所述客户端将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中;以防止后续升级出错造成文件丢失,提高了应用程序升级的可靠性。
请参阅图6,本发明所提供的数据传输方法的另一实施例包括:
601、客户端上传客户端应用列表文件到服务端;
其中,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
602、所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;
其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
603、所述客户端将所述增量升级包解压到临时升级目录;
604、所述客户端获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
605、所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
606、所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
607、所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录;
608、所述客户端创建临时备份目录;
609、所述客户端将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
610、所述客户端将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
611、所述客户端将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中;
需要说明的是,步骤601~611可对应参考步骤501~511中相关说明,此处不再赘述。
612、所述客户端将所述临时升级目录中文件复制到应用目录中,并通知所述服务端升级任务完成;
该客户端将临时升级目录中的目标manifest.xml、目标manifest.xml.sig和其他增量文件复制到应用目录中,并通知该服务端升级任务完成。
613、当所述复制出错时,所述客户端从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败;
如果复制过程出错,该客户端从临时备份目录中恢复应用的文件,并删除临时升级目录,通知该服务端本次升级任务失败。
614、所述客户端删除所述临时升级目录和所述临时备份目录。
升级完成,删除所述临时升级目录和所述临时备份目录。
本发明实施例中,所述客户端将所述临时升级目录中文件复制到应用目录中,并通知所述服务端升级任务完成;当所述复制出错时,所述客户端从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败;所述客户端删除所述临时升级目录和所述临时备份目录;从而提高了应用程序升级的可靠性。
以上对本发明中的数据传输方法进行了说明,下面将从装置的角度对服务端和客户端的结构进行说明,请参阅图7,本发明所提供的服务端的一个实施例包括:
获取单元701,用于获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和散列信息;
判断单元702,用于判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
第一处理单元703,用于在所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
第二处理单元704,用于在所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
压缩单元705,用于对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
本发明实施例中,获取单元701获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和散列信息;判断单元702判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;第一处理单元703在所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;第二处理单元704在所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;压缩单元705对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。本发明实施例通过采用更安全的散列算法,避免了通过散列攻击伪造相同散列值的非法文件;且通过对文件进行打包压缩以及对应用列表文件进行签名认证,避免了伪造应用升级文件;从而保障数据安全传输同时,提高了应用程序的更新速度。
请参阅图8,本发明所提供的客户端的一个实施例包括:
上传模块801,用于上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
获取模块802,用于获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
升级模块803,用于根据获取的所述增量升级包进行应用包的升级。
本发明实施例中,上传模块801上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;获取模块802获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;升级模块803根据获取的所述增量升级包进行应用包的升级。本发明实施例通过采用更安全的散列算法,避免了通过散列攻击伪造相同散列值的非法文件;且通过对文件进行打包压缩以及对应用列表文件进行签名认证,避免了伪造应用升级文件;从而保障数据安全传输同时,提高了应用程序的更新速度。
基于上述实施例中的客户端,可选的,如图9所示,上述客户端还包括:
解析模块901,用于对所述增量升级包进行解析验证;
备份模块902,用于对所述客户端应用列表文件进行备份。
本发明实施例中,解析模块901对所述增量升级包进行解析验证;备份模块902对所述客户端应用列表文件进行备份;从而避免了伪造的非法文件的攻击,提高了应用程序升级的安全性及可靠性。
基于上述实施例中的客户端,可选的,如图10所示,上述解析模块901具体包括:
解压子模块1001,用于将所述增量升级包解压到临时升级目录;
第一验证子模块1002,用于获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
第二验证子模块1003,用于解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
第三验证子模块1004,用于验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
第四验证子模块1005,用于验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录。
本发明实施例中,解压子模块1001将所述增量升级包解压到临时升级目录;第一验证子模块1002获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;第二验证子模块1003解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;第三验证子模块1004验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;第四验证子模块1005验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录;从而避免了通过散列攻击伪造相同散列值的非法文件,提高了应用程序升级的安全性及可靠性。
基于上述实施例中的客户端,可选的,如图11所示,上述备份模块902具体包括:
创建子模块1101,用于创建临时备份目录;
第一移动子模块1102,用于将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
第二移动子模块1103,用于将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
第三移动子模块1104,用于将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中。
本发明实施例中,第一移动子模块1102将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;第二移动子模块1103将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;第三移动子模块1104将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中;以防止后续升级出错造成文件丢失,提高了应用程序升级的可靠性。
基于上述实施例中的客户端,可选的,如图12所示,上述升级模块803具体包括:
复制子模块1201,用于将所述临时升级目录中文件复制到应用目录中;
删除子模块1202,用于删除所述临时升级目录和所述临时备份目录,并通知所述服务端升级任务完成。
基于上述实施例中的客户端,可选的,如图13所示,上述升级模块803还包括:
恢复模块1301,用于在所述复制子模块1201复制出错时,从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败。
本发明实施例中,恢复模块1301在所述复制子模块1201复制出错时,从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败;从而提高了应用程序升级的可靠性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种数据传输方法,其特征在于,包括:
服务端获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
所述服务端判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
当所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,所述服务端将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
当所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
所述服务端对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
2.一种数据传输方法,其特征在于,包括:
客户端上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
所述客户端根据获取的所述增量升级包进行应用包的升级。
3.根据权利要求2所述的方法,其特征在于,所述客户端获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包之后还包括:
所述客户端对所述增量升级包进行解析验证;
所述客户端对所述客户端应用列表文件进行备份。
4.根据权利要求3所述的方法,其特征在于,所述客户端对所述增量升级包进行解析验证具体包括:
所述客户端将所述增量升级包解压到临时升级目录;
所述客户端获取所述目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
所述客户端解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
所述客户端验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
所述客户端验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录。
5.根据权利要求4所述的方法,其特征在于,所述客户端对所述客户端应用列表文件进行备份具体包括:
所述客户端创建临时备份目录;
所述客户端将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
所述客户端将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
所述客户端将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中。
6.根据权利要求5所述的方法,其特征在于,所述客户端根据获取的所述增量升级包进行应用包的升级具体包括:
所述客户端将所述临时升级目录中文件复制到应用目录中,并通知所述服务端升级任务完成;
所述客户端删除所述临时升级目录和所述临时备份目录。
7.根据权利要求6所述的方法,其特征在于,所述客户端删除所述临时升级目录和所述临时备份目录之前还包括:
当所述复制出错时,所述客户端从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败。
8.一种服务端,其特征在于,包括:
获取单元,用于获取客户端上传的客户端应用列表文件,所述客户端应用列表文件中包含所述客户端的应用包中的文件和散列信息;
判断单元,用于判断目标应用列表文件中的文件是否存在于所述客户端应用列表文件中,以及判断目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致;
第一处理单元,用于在所述目标应用列表文件中的文件不存在于所述客户端应用列表文件中时,将所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件放入增量文件列表中;
第二处理单元,用于在所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2不一致时,所述服务端将所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件放入增量文件列表中;
压缩单元,用于对所述目标应用列表文件、目标应用列表文件的签名文件以及所述增量文件列表中的文件进行打包压缩,生成增量升级包,以使所述客户端通过所述增量升级包进行应用包的升级。
9.一种客户端,其特征在于,包括:
上传模块,用于上传客户端应用列表文件到服务端,所述客户端应用列表文件中包含所述客户端的应用包中的文件和文件的散列信息;
获取模块,用于获取所述服务端对目标应用列表文件、目标应用列表文件的签名文件以及增量文件列表中的文件进行打包压缩而生成的增量升级包;其中,所述增量文件列表中的文件包括:所述目标应用列表文件中不存在于所述客户端应用列表文件中的文件,和/或所述目标应用列表文件中与所述客户端应用列表文件中的文件的散列值sha2不一致的文件;
升级模块,用于根据获取的所述增量升级包进行应用包的升级。
10.根据权利要求9所述的客户端,其特征在于,所述客户端还包括:
解析模块,用于对所述增量升级包进行解析验证;
备份模块,用于对所述客户端应用列表文件进行备份。
11.根据权利要求10所述的客户端,其特征在于,所述解析模块具体包括:
解压子模块,用于将所述增量升级包解压到临时升级目录;
第一验证子模块,用于获取目标应用列表文件的签名文件,并验证所述目标应用列表文件的签名文件是否合法,若不合法,则中止升级,并删除所述临时升级目录;
第二验证子模块,用于解析所述目标应用列表文件,并验证所述目标应用列表文件中的应用名称是否匹配,若不匹配,则中止升级,并删除所述临时升级目录;
第三验证子模块,用于验证所述目标应用列表文件中的文件与所述客户端应用列表文件中的文件的散列值sha2是否一致,若不一致,则中止升级,并删除所述临时升级目录;
第四验证子模块,用于验证所述目标应用列表文件中的文件是否存在于所述增量升级包中,若不存在,则中止升级,并删除所述临时升级目录。
12.根据权利要求11所述的客户端,其特征在于,所述备份模块具体包括:
创建子模块,用于创建临时备份目录;
第一移动子模块,用于将存在于所述客户端应用列表文件且不存在于所述目标应用列表文件中的文件移动到所述临时备份目录中;
第二移动子模块,用于将客户端应用列表文件中与所述目标应用列表文件中的文件的散列值sha2不一致的文件移动到所述临时备份目录中;
第三移动子模块,用于将所述客户端应用列表文件、客户端应用列表文件的签名文件移动到所述临时备份目录中。
13.根据权利要求12所述的客户端,其特征在于,所述升级模块具体包括:
复制子模块,用于将所述临时升级目录中文件复制到应用目录中;
删除子模块,用于删除所述临时升级目录和所述临时备份目录,并通知所述服务端升级任务完成。
14.根据权利要求13所述的客户端,其特征在于,所述升级模块还包括:
恢复模块,用于在所述复制子模块复制出错时,从所述临时备份目录中恢复原有的文件,并删除所述临时升级目录,通知所述服务端升级任务失败。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510278899.8A CN104866351B (zh) | 2015-05-27 | 2015-05-27 | 一种数据传输方法、服务端及客户端 |
US15/107,069 US10516526B2 (en) | 2015-05-27 | 2015-08-17 | Data transmitting method, server and client |
PCT/CN2015/087263 WO2016187970A1 (zh) | 2015-05-27 | 2015-08-17 | 一种数据传输方法、服务端及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510278899.8A CN104866351B (zh) | 2015-05-27 | 2015-05-27 | 一种数据传输方法、服务端及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866351A CN104866351A (zh) | 2015-08-26 |
CN104866351B true CN104866351B (zh) | 2018-03-09 |
Family
ID=53912200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510278899.8A Active CN104866351B (zh) | 2015-05-27 | 2015-05-27 | 一种数据传输方法、服务端及客户端 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10516526B2 (zh) |
CN (1) | CN104866351B (zh) |
WO (1) | WO2016187970A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102408649B1 (ko) * | 2016-02-19 | 2022-06-15 | 삼성전자주식회사 | 환경 설정 방법 및 장치 |
CN106293746B (zh) * | 2016-08-12 | 2020-01-31 | 福建天晴数码有限公司 | 浏览器脚本的更新方法及系统 |
CN108509211A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 应用程序升级方法、装置、移动终端和存储介质 |
CN110290160A (zh) * | 2018-03-19 | 2019-09-27 | 北京视联动力国际信息技术有限公司 | 一种视联网的数据处理方法和装置 |
CN110401681B (zh) * | 2018-04-20 | 2022-06-24 | 伊姆西Ip控股有限责任公司 | 用于数据传输、数据接收的方法以及电子设备 |
CN108874436A (zh) * | 2018-06-13 | 2018-11-23 | 珠海市君天电子科技有限公司 | 一种软件升级方法、装置、终端设备及介质 |
JP7195796B2 (ja) * | 2018-07-23 | 2022-12-26 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及び、プログラム |
CN109450962B (zh) * | 2018-08-30 | 2021-08-10 | 百度在线网络技术(北京)有限公司 | 数据传输方法、打包服务器、存储服务器及可读存储介质 |
US11093241B2 (en) * | 2018-10-05 | 2021-08-17 | Red Hat, Inc. | Outlier software component remediation |
CN109189459B (zh) * | 2018-11-16 | 2020-03-03 | 北京微播视界科技有限公司 | 应用程序更新方法、装置、电子设备、服务器及存储介质 |
CN110392103B (zh) * | 2019-07-18 | 2023-12-19 | 上海擎感智能科技有限公司 | 用于车载设备的升级包的上传方法、装置、服务器 |
CN111090446A (zh) * | 2019-12-20 | 2020-05-01 | 北京海益同展信息科技有限公司 | 一种配置文件更新方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236752A (zh) * | 2010-05-04 | 2011-11-09 | 航天信息股份有限公司 | 软件安装和升级的可信度量方法 |
CN102833745A (zh) * | 2012-07-17 | 2012-12-19 | 华为技术有限公司 | 一种软件安全升级的方法、通信设备和通信系统 |
CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO312269B1 (no) * | 2000-06-28 | 2002-04-15 | Ericsson Telefon Ab L M | Fremgangsmåte for automatisering av programvareoppgradering |
US6832373B2 (en) * | 2000-11-17 | 2004-12-14 | Bitfone Corporation | System and method for updating and distributing information |
KR100421624B1 (ko) * | 2001-11-02 | 2004-03-11 | (주) 한정문 | 플랫폼 독립적인 소프트웨어 자동 검색/배포/설치 장치 및그 방법 |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US7716660B2 (en) * | 2004-12-14 | 2010-05-11 | Microsoft Corporation | Method and system for downloading updates |
US7904484B2 (en) * | 2007-11-30 | 2011-03-08 | Red Hat, Inc. | Incremental packaging |
US8443357B2 (en) * | 2008-10-13 | 2013-05-14 | Oracle International Corporation | Patching of multi-level data containers storing portions of pre-installed software |
US8429256B2 (en) * | 2010-05-28 | 2013-04-23 | Red Hat, Inc. | Systems and methods for generating cached representations of host package inventories in remote package repositories |
US9235593B2 (en) * | 2010-09-30 | 2016-01-12 | Emc Corporation | Transmitting filesystem changes over a network |
US9552201B2 (en) * | 2011-08-31 | 2017-01-24 | Avaya Inc. | System and method for incremental software installation |
BR112014012772A8 (pt) * | 2011-12-01 | 2017-06-20 | Tencent Tech Shenzhen Co Ltd | método e sistema para aprimorar software |
US9767280B2 (en) * | 2012-10-09 | 2017-09-19 | Canon Denshi Kabushiki Kaisha | Information processing apparatus, method of controlling the same, information processing system, and information processing method |
US9785429B2 (en) * | 2015-02-27 | 2017-10-10 | Lenovo (Singapore) Pte. Ltd. | Efficient deployment of thin client applications to end user |
US20160291967A1 (en) * | 2015-03-30 | 2016-10-06 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for updating firmware |
US9787800B2 (en) * | 2015-12-30 | 2017-10-10 | Veniam, Inc. | Systems and methods for remote software update and distribution in a network of moving things |
-
2015
- 2015-05-27 CN CN201510278899.8A patent/CN104866351B/zh active Active
- 2015-08-17 WO PCT/CN2015/087263 patent/WO2016187970A1/zh active Application Filing
- 2015-08-17 US US15/107,069 patent/US10516526B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236752A (zh) * | 2010-05-04 | 2011-11-09 | 航天信息股份有限公司 | 软件安装和升级的可信度量方法 |
CN102833745A (zh) * | 2012-07-17 | 2012-12-19 | 华为技术有限公司 | 一种软件安全升级的方法、通信设备和通信系统 |
CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20170111166A1 (en) | 2017-04-20 |
WO2016187970A1 (zh) | 2016-12-01 |
US10516526B2 (en) | 2019-12-24 |
CN104866351A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866351B (zh) | 一种数据传输方法、服务端及客户端 | |
US8429643B2 (en) | Secure upgrade of firmware update in constrained memory | |
US20070061800A1 (en) | System and method for updating software in a network device | |
US7599970B2 (en) | Method and apparatus for updating a stored version of content stored in a storage device | |
CN108733400A (zh) | 一种App增量热更新方法及服务系统 | |
CN104580395B (zh) | 一种基于现存云存储平台的多云协同存储中间件系统 | |
CN102722386A (zh) | 生成无线固件升级包的方法和装置 | |
US8839446B2 (en) | Protecting archive structure with directory verifiers | |
JP2008541225A5 (zh) | ||
CN107667351A (zh) | 用于移动设备上的自动基于云的全数据备份和恢复的系统和方法 | |
CN104781791A (zh) | 通用可插拔云灾难恢复系统 | |
CN104219198B (zh) | 一种WebApp的防篡改方法 | |
KR101411181B1 (ko) | 스키마의 패키징, 배포, 이용가능성 | |
CN101272242A (zh) | 基于网络的移动存储系统和方法 | |
CN102067148A (zh) | 用于确定文件分类的方法及系统 | |
US20110187511A1 (en) | Method and apparatus for managing content, configuration and credential information among devices | |
CN110784463A (zh) | 一种基于区块链的文件存储和访问方法及系统 | |
CN101547219B (zh) | 一种数据存储系统和方法 | |
CN107770622A (zh) | 一种更新Linux系统中文件的方法及操作方法 | |
CN109309725A (zh) | 应用下载和更新方法、装置、计算机设备及存储介质 | |
CN104866394A (zh) | 一种分布式文件备份方法和系统 | |
CN112037058B (zh) | 数据验证方法、装置及存储介质 | |
CN106155742A (zh) | 组件更新处理方法及装置 | |
CN112184172B (zh) | 电子档案在线移交、接收方法及移交接收系统 | |
CN105550060A (zh) | 一种增量升级的备份方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |