CN108710500A - 资源发布方法、更新方法和装置 - Google Patents

资源发布方法、更新方法和装置 Download PDF

Info

Publication number
CN108710500A
CN108710500A CN201810504113.3A CN201810504113A CN108710500A CN 108710500 A CN108710500 A CN 108710500A CN 201810504113 A CN201810504113 A CN 201810504113A CN 108710500 A CN108710500 A CN 108710500A
Authority
CN
China
Prior art keywords
service packs
application program
file
configuration information
resource
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
Application number
CN201810504113.3A
Other languages
English (en)
Inventor
王广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201810504113.3A priority Critical patent/CN108710500A/zh
Publication of CN108710500A publication Critical patent/CN108710500A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明实施例提供一种资源发布方法、更新方法和装置,该资源发布方法包括:获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到应用程序的补丁包,随机生成密钥,并根据密钥对补丁包进行加密,对加密后的补丁包进行签名。采用JSON数据协议整合获取配置信息,配置信息包括所述补丁包的版本号,将签名后的补丁包和配置信息上传至服务器进行发布。通过应用程序的补丁包进行加密,并进行加密的密钥进行签名,保证密钥不被篡改,保证补丁包的安全性。

Description

资源发布方法、更新方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源发布方法、更新方法和装置。
背景技术
随着智能终端设备的广泛应用,终端设备上的应用程序(Application,APP)也随着用户的需求变动,APP需要根据用户的需求进行资源更新。
现有技术中,APP的资源更新的方式为根据现有接口信息,直接向服务端拉去配置信息,配置信息中包括需要更新的明文补丁包地址和对应的补丁包MD5值。在加载时下载明文补丁包,校验MD5值,判断是否可应用于APP。该配置信息中包括对应的APP的版本信息和补丁包信息的单一对应关系。
然而,上述的资源更新的方式补丁包可能被拦截,APP可能被下发恶意代码,安全性较差。
发明内容
本发明提供一种资源发布方法、更新方法和装置,用于解决上述的资源更新的方式补丁包可能被拦截,APP可能被下发恶意代码,安全性较差的问题。
本发明第一方面提供一种资源发布方法,包括:
获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包;
随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包;
采用JSON数据协议整合获取配置信息;所述配置信息包括所述补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
将所述签名后的补丁包和所述配置信息上传至服务器进行发布。
可选的,所述随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,包括:
随机生成128位的密钥,根据所述密钥采用AES加密算法加密补丁包;
对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串;
使用RSA私钥对所述字符串进行签名,并进行转码。
可选的,所述获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包,包括:
所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。
可选的,所述配置信息还包括所述应用程序版本号、渠道号以及开关选项中的至少一个。
可选的,所述方法还包括:
在所述服务器中的接口中设置维度策略。
本发明第二方面提供一种资源更新方法,包括:
获取待更新的应用程序的资源的配置信息,所述配置信息包括所述应用程序的补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
根据所述配置信息下载所述补丁包,并对所述补丁包的签名进行校验;
若所述补丁包的签名校验成功,对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件;
将所述脚本文件和所述资源文件存储在所述应用程序的目录下,并生成加载信息。
可选的,所述方法还包括:
若所述补丁包的签名校验失败,则放弃更新。
可选的,对所述补丁包的签名进行校验,包括:
采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;
校验所述补丁包的MD5值是否一致;
若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。
可选的,所述对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件,包括:
采用所述AES密钥对所述补丁包进行解密,得到所述脚本文件和所述资源文件。
可选的,获取待更新的应用程序的资源的配置信息,包括:
根据配置的维度信息,下载所述维度信息对应的配置信息;
确定所述配置信息中是否包括需要的版本号和/或渠道号;
若所述配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
本发明第三方面提供一种资源发布装置,包括:
第一处理模块,用于获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包;
第二处理模块,用于随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包;
第三处理模块,用于采用JSON数据协议整合获取配置信息;所述配置信息包括所述补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
发布模块,用于将签名后的补丁包和所述配置信息上传至服务器进行发布。
可选的,所述第二处理模块具体用于:
随机生成128位的密钥,根据所述密钥采用AES加密算法加密补丁包;
对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串;
使用RSA私钥对所述字符串进行签名,并进行转码。
可选的,所述第一处理模块具体用于:
所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。
可选的,所述第三处理模块获取的所述配置信息还包括所述补丁包的地址、对补丁包的签名、应用程序版本号、渠道号以及开关选项中的至少一个。
可选的,所述发布模块还用于在所述服务器中的接口中设置维度策略。
本发明第四方面提供一种资源更新装置,包括:
处理模块,用于获取待更新的应用程序的资源的配置信息,所述配置信息包括所述应用程序的补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
校验模块,用于根据所述配置信息下载所述补丁包,并对所述补丁包的签名进行校验;
解密模块,用于若所述补丁包的签名校验成功,对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件;
所述处理模块还用于将所述脚本文件和所述资源文件存储在所述应用程序的目录下,并生成加载信息。
可选的,所述处理模块还用于若所述补丁包的签名校验失败,则放弃更新。
可选的,所述校验模块具体用于:
采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;
校验所述补丁包的MD5值是否一致;
若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。
可选的,所述解密模块具体用于:
采用所述AES密钥对所述补丁包进行解密,得到所述脚本文件和所述资源文件。
可选的,所述处理模块具体用于:
根据配置的维度信息,下载所述维度信息对应的配置信息;
确定所述配置信息中是否包括需要的版本号和/或渠道号;
若所述配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
本发明第五方面提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序存储在所述可读存储介质中,所述计算机程序用于实现上述资源发布方法。
本发明第六方面提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序存储在所述可读存储介质中,所述计算机程序用于实现上述资源更新方法。
本发明实施例提供的资源发布方法、更新方法和装置,该资源发布方法包括:获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到应用程序的补丁包,随机生成密钥,并根据密钥对补丁包进行加密,对加密后的补丁包进行签名。采用JSON数据协议整合获取配置信息,配置信息包括所述补丁包的版本号,将签名后的补丁包和配置信息上传至服务器进行发布。通过应用程序的补丁包进行加密,并进行加密的密钥进行签名,保证密钥不被篡改,保证补丁包的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的资源发布方法实施例一的流程图;
图2为本发明实施例提供的资源发布方法实施例二的流程图;
图3为本发明实施例提供的资源更新方法实施例一的流程图;
图4为本发明实施例提供的资源更新方法实施例二的流程图;
图5为本发明实施例提供的资源发布方法中加密和签名生成的示意图;
图6为本发明实施例提供的资源更新方法中解析过程的示意图;
图7为本发明实施例提供的资源发布装置实施例的结构示意图;
图8为本发明实施例提供的资源更新装置实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
针对现有技术中,根据接口信息,直接向服务器端拉取配置信息,信息中包括需要更新的明文补丁包地址和补丁包MD5值,在加载时直接下载明文补丁包,校验MD5值,判断是否可应用在应用程序中,并且在该方案中,配置信息中包括对应的APP的版本信息和补丁包信息的单一对应关系,该方案虽然保证了功能但是存在以下几个问题:
1、缺乏安全度,补丁包可能被拦截,APP可能被下发恶意代码,并且代码为明文,及不安全。
2、配置信息单一,不支持多个版本同时配置,只能应用了单个版本。
3、包维度较少,只支持版本信息,不支持同版本不同渠道的配置。
针对上述问题,本发明提供一种资源发布方案和资源更新方法,设计一套安全的可动态下发资源包的方案。APP程序不需要直接全量更新安装包,直接下载补丁包来实现了动态修改,同时,为保证APP的安全性,需要加入一些安全策略。
下面通过几个具体实施方式,对本方案进行详细说明。
图1为本发明实施例提供的资源发布方法实施例一的流程图,如图1所示,该资源发布方法具体可在应用程序的服务器或者在开发人员的电脑等开发设备中进行执行,该资源发布方法具体包括以下步骤:
S101:获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到应用程序的补丁包。
在本步骤中,在对某个应用程序进行更新的过程中,开发人员会对该应用程序对应的项目工程中的文件,或者具体的程序进行修改和增加,即对应用程序的文件增进了增加或者对部分功能进行修改,在进行资源发布的过程中,可获取该应用程序对应的文件中相较于上一个版本进行变动了脚本文件和资源文件进行打包压缩,得到对应用程序进行更新的补丁包。
在该过程中,应理解对于删除的脚本可以不做处理。
该方案中,脚本文件指的是要执行的代码;资源文件指的是执行过程中要调用的图片等数据文件。
该方案的一种具体实现中,对所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。其中,差异的原理主要是记录上个版本每个文件的MD5值,分别进行比对,把有变动的文件和新添加的文件进行打包,同时在补丁包中记录这些信息。
S102:随机生成密钥,并根据密钥对补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包。
在本步骤中,得到应用程序的补丁包之后,随机生成一个密钥,该密钥是用来对补丁包进行加密的,在获取到密钥之后,可按照约定的加密算法对该补丁包进行加密,得到加密后的补丁包,为了保证加密的密钥以及MD5值的安全性,可进一步采用约定的私钥对密钥以及MD5值进行签名,即对加密后的补丁包进行签名,得到签名后的补丁包。
S103:采用JSON数据协议整合获取配置信息;配置信息包括补丁包的版本号、补丁包的地址、补丁包的签名。
在本步骤中,(JavaScript Object Notation,JSON)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。需要对前述对脚本文件和资源文件进行加密和签名的过程中的信息进行整合,即采用该JSON数据协议整合获取配置信息,该配置信息用于客户端在下载补丁包的时候进行确定是否是需要的补丁包。
该配置信息中至少包括补丁包的版本号、补丁包的地址、补丁包的签名。除此之外,还可以包括以下信息中的至少一种:
涉及的应用程序的版本号、补丁包的渠道号、开关选项等信息。
S104:将签名后的补丁包和配置信息上传至服务器进行发布。
在本步骤中,将签名后的补丁包以及整合得到的该补丁包的配置信息需要发布在服务器上,即需要上传至客户端可以访问下载的服务器上进行发布,以便客户端可以下载使用。
进一步地,还可以在对签名后的补丁包和配置信息进行发布的同时,在所述服务器中的接口中设置维度策略,以便客户端能够根据不同的维度进行下载更新。
本实施例提供的资源发布方法,通过对应用程序的补丁包进行加密和签名,生成对应的配置信息,在服务器上发布加密后的补丁包,保证了补丁包的机密性以及安全性,并且对密钥和MD5值进行了签名,保证密钥不会被篡改,防止补丁包被劫持,最大程度的保证补丁包的安全性。
图2为本发明实施例提供的资源发布方法实施例二的流程图,如图2所示,在上述实施例的基础上,步骤S102中随机生成密钥,并根据密钥对补丁包进行加密,对加密后的补丁包进行签名的具体实现步骤包括:
S1021:随机生成128位的密钥,根据密钥采用AES加密算法加密补丁包。
在本步骤中,为了对补丁包进行加密签名保证安全性,一种具体的实现方式中,随机生成一个128位密钥,并可以使用AES加密算法采用该128位密钥对补丁包进行加密,该方案中(Advanced Encryption Standard,AES)是美国联邦政府采用的一种区块加密标准,属于对称加密的一种,可使用它实现数据的加密。
S1022:对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串。
S1023:使用RSA私钥对字符串进行签名,并进行转码。
在上述方案中,对该加密的补丁包进行MD5处理。整合MD5值和对应的AES密钥成一串字符,使用已有RSA私钥对转码后的字符进行签名,最后用Base64算法进行转码。非对称加密(Public-Key Cryptography,RSA)是一种非对称加密算法,由于加密和解密需要两个不同的密钥。它提供了加密和数字签名的功能。
本实施例提供的资源发布方法,通过对应用程序的补丁包进行采用生成的128位的密钥加密,对MD5值以及密钥进行签名,生成对应的配置信息,在服务器上发布加密后的补丁包,保证了补丁包的机密性以及安全性,并且对密钥和MD5值进行了签名,保证密钥不会被篡改,防止补丁包被劫持,最大程度的保证补丁包的安全性。
图3为本发明实施例提供的资源更新方法实施例一的流程图,如图3所示,该方案应用在应用程序安装的设备上,例如用户的手机、电脑、平板等终端设备,更进一步的应用在该应用程序的客户端中,该资源更新方法具体包括以下步骤:
S201:获取待更新的应用程序的资源的配置信息,配置信息包括应用程序的补丁包的版本号、补丁包的地址、补丁包的签名。
S202:根据配置信息下载补丁包,并对补丁包的签名进行校验。
在上述步骤中,获取到待更新的应用程序的配置信息之后,根据配置信息中携带的补丁包的版本号以及补丁包的地址,从提供应用程序的更新资源的服务器的中下载该补丁包的版本号对应的补丁包,然后对补丁包的签名进行校验。
一种具体的校验方式为,采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;校验所述补丁包的MD5值是否一致;若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。对签名的校验方式与服务器发布过程中的签名过程对应。
如果该补丁包的签名校验失败,则可以放弃更新。
S203:若补丁包的签名校验成功,对补丁包进行解密,得到应用程序相较于上一个版本变动的脚本文件和资源文件。
S204:将脚本文件和资源文件存储在应用程序的目录下,并生成加载信息。
在上述步骤中,若对该补丁包的签名校验成功,则可以对补丁包进行解密,与加密过程对应,采用校验过程中得到的AES密钥对补丁包进行解密,得到所述脚本文件和所述资源文件,该脚本文件为服务器侧对应用程序相对于上一个版本的更新的执行文件,即变动的脚本文件,资源文件为该更新对应的要调用的资源,例如:图片或者参数等数据。将解密后的补丁包,即该脚本文件和资源文件放入终端设备中该应用程序对应的目录下,生成加载信息。以便应用程序在下次加载的时候能够应用该补丁包对应的文件以及加载信息,完成对应用程序的更新。
本实施例提供的资源更新方法,通过发布时对应用程序的补丁包进行加密和签名,生成对应的配置信息,下载的补丁包是加密后的补丁包,保证了补丁包的机密性以及安全性,并且对密钥和MD5值进行了签名,保证密钥不会被篡改,防止补丁包被劫持,最大程度的保证补丁包的安全性。
图4为本发明实施例提供的资源更新方法实施例二的流程图,如图4所示,在上述实施例的基础上,步骤S201的具体实现步骤包括:
S2011:根据配置的维度信息,下载维度信息对应的配置信息。
S2012:确定配置信息中是否包括需要的版本号和/或渠道号。
S2013:若配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
在上述步骤中,应用程序的客户端为应用程序下载配置所需的维度信息,然后下载该维度信息对应的配置信息,然后根据配置信息的内容确定是否能够获取到对应的版本号以及渠道号的补丁包,如果不行则放弃更新。如果可以则根据该配置信息下载对应的补丁包,然后进行签名校验和解密过程,将加压后的补丁包放入对应的目录,以便应用程序启动时候进行加载。
在上述方案的一种具体实现中,客户端在进行应用程序的资源更新时,需要根据维度等信息来下载对应的配置文件,然后在在校验配置文件并查找最符合当前APP的配置项,查找按版本号,渠道号的顺序进行,再校验补丁包版本号,低于当前版本就放弃更新,否则按配置项信息下载对应的补丁包。
随后获得配置信息中签名信息,进行Base64解码,并利用RSA的公钥进行解密,获得MD5和和密钥的组合字符串,然后校验补丁包的MD5,如果不一致直接放弃更新。一致的话,使用解密出来的AES密钥对补丁包进行解密,并放入真正的加载目录下,等下次加载来进行更新。
在安全性上,该方案使用AES对补丁包加密,保证了机密行。使用MD5码来校验加密后补丁包的完整度,防止补丁包被篡改。另外使用非对称密钥的私钥对AES密钥和MD5码进行签名,使得密钥和MD5不能被篡改,验证了补丁包下发服务器的信息,防止被劫持,可谓最大限度的保证了补丁包的安全性。
在一种具体实现方式中,图5为本发明实施例提供的资源发布方法中加密和签名生成的示意图,图6为本发明实施例提供的资源更新方法中解析过程的示意图,如图5所示,JS.zip表示压缩得到的补丁包,通过对应的密钥对该补丁包进行对称加密得到Bin文件,然后再进行MD5加密处理,得到摘要串,根据Json组装得到Json串,再根据预先约定的私钥进行非对称加密得到密文在服务器上进行发布。如图6所示,客户端在下载到密文之后,根据上述私钥对应的公钥对该密文进行非对称解密得到Json串,进行Json解析得到摘要串以及对应密钥,在上述过程的同时,对Bin文件进行MD5加密得到摘要串,然后进行校验,堆成解密得到补丁包。
在上述方案的具体实现中,还应该理解,App可以内置一个补丁包。安装时默认将补丁包放入内置目录下,并应用于加载,如果补丁包更新失败还会继续沿用之前的版本。为安全起见,更新是在下次启动时应用,并不会立即生效。
本方案提供的资源发布方法和资源更新方法,可以支持多维度下发补丁包,使得控制更细化,可根据需求对不同条件的用户下发补丁包,解决了客户端灰度发布新版需求的难题。这个方案使用签名校验,并对补丁包进行加密,一方面可以防止补丁包被篡改,另外能够保证了补丁包的机密性。解决了下发补丁包不安全的问题。
图7为本发明实施例提供的资源发布装置实施例的结构示意图;如图7所示,本实施例提供的资源发布装置10包括:
第一处理模块11,用于获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包;
第二处理模块12,用于随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包;
第三处理模块13,用于采用JSON数据协议整合获取配置信息;所述配置信息包括所述补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
发布模块14,用于将签名后的补丁包和所述配置信息上传至服务器进行发布。
本实施例提供的资源发布装置,用于实现前述任一实施例提供的资源发布装置,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,所述第二处理模块12具体用于:
随机生成128位的密钥,根据所述密钥采用AES加密算法加密补丁包;
对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串;
使用RSA私钥对所述字符串进行签名,并进行转码。
可选的,所述第一处理模块11具体用于:
所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。
可选的,所述第三处理模块13获取的所述配置信息还包括所述补丁包的地址、对补丁包的签名、应用程序版本号、渠道号以及开关选项中的至少一个。
可选的,所述发布模块14还用于在所述服务器中的接口中设置维度策略。
上述任一实施例提供的资源发布装置,用于实现前述任一实施例提供的资源发布装置,其实现原理和技术效果类似,在此不再赘述。
图8为本发明实施例提供的资源更新装置实施例的结构示意图。如图8所示,该资源更新装置20包括:
处理模块21,用于获取待更新的应用程序的资源的配置信息,所述配置信息包括所述应用程序的补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
校验模块22,用于根据所述配置信息下载所述补丁包,并对所述补丁包的签名进行校验;
解密模块23,用于若所述补丁包的签名校验成功,对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件;
所述处理模块21还用于将所述脚本文件和所述资源文件存储在所述应用程序的目录下,并生成加载信息。
可选的,所述处理模块21还用于若所述补丁包的签名校验失败,则放弃更新。
可选的,所述校验模块具体用于:
采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;
校验所述补丁包的MD5值是否一致;
若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。
可选的,所述解密模块具体用于:
采用所述AES密钥对所述补丁包进行解密,得到所述脚本文件和所述资源文件。
可选的,所述处理模块21具体用于:
根据配置的维度信息,下载所述维度信息对应的配置信息;
确定所述配置信息中是否包括需要的版本号和/或渠道号;
若所述配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
上述各实施例提供的资源更新装置,用于执行前述资源更新方法实施例中的技术方案,其实现原理和技术效果类似,在此不再赘述。
前述的资源发布装置和资源更新装置的具体实现中,发布模块可以实现为发送器、处理模块可以实现为处理器,另外装置中还应该包括用于存储程序指令和参数的存储器。
在上述方案涉及到的服务器或者终端设备的具体实现中,还可包括计算机程序和存储器,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行上述的资源发布方法或者资源更新方法。处理器的数量为至少一个,用来执行存储器存储的执行指令,即计算机程序。使得终端设备与服务器通过通信接口进行数据交互,来执行上述各方面的各种实施方式提供的资源发布方法或者资源更新方法,可选的,存储器还可以集成在处理器内部。
本申请还提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序存储在所述可读存储介质中,所述计算机程序用于实现上述资源发布方法。
本申请还提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序存储在所述可读存储介质中,所述计算机程序用于实现上述资源更新方法。
在上述终端设备或者服务器的具体实现中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetictape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种资源发布方法,其特征在于,包括:
获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包;
随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包;
采用JSON数据协议获取配置信息;所述配置信息包括所述补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
将所述签名后的补丁包和所述配置信息上传至服务器进行发布。
2.根据权利要求1所述的方法,其特征在于,所述随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,包括:
随机生成128位的密钥,根据所述密钥采用AES加密算法加密补丁包;
对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串;
使用RSA私钥对所述字符串进行签名,并进行转码。
3.根据权利要求1或2所述的方法,其特征在于,所述获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包,包括:
对所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。
4.根据权利要求1或2所述的方法,其特征在于,所述配置信息还包括所述应用程序版本号、渠道号以及开关选项中的至少一个。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述服务器中的接口中设置维度策略。
6.一种资源更新方法,其特征在于,包括:
获取待更新的应用程序的配置信息,所述配置信息包括所述应用程序的补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
根据所述配置信息下载所述补丁包,并对所述补丁包的签名进行校验;
若所述补丁包的签名校验成功,对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件;
将所述脚本文件和所述资源文件存储在所述应用程序的目录下,并生成加载信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述补丁包的签名校验失败,则放弃更新。
8.根据权利要求6或7所述的方法,其特征在于,对所述补丁包的签名进行校验,包括:
采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;
校验所述补丁包的MD5值是否一致;
若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。
9.根据权利要求8所述的方法,其特征在于,所述对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件,包括:
采用所述AES密钥对所述补丁包进行解密,得到所述脚本文件和所述资源文件。
10.根据权利要求6或7所述的方法,其特征在于,获取待更新的应用程序的资源的配置信息,包括:
根据配置的维度信息,下载所述维度信息对应的配置信息;
确定所述配置信息中是否包括需要的版本号和/或渠道号;
若所述配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
11.一种资源发布装置,其特征在于,包括:
第一处理模块,用于获取应用程序的文件中相较于上一个版本变动的脚本文件和资源文件并进行打包,得到所述应用程序的补丁包;
第二处理模块,用于随机生成密钥,并根据所述密钥对所述补丁包进行加密,对加密后的补丁包进行签名,得到签名后的补丁包;
第三处理模块,用于采用JSON数据协议整合获取配置信息;所述配置信息包括所述补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
发布模块,用于将所述签名后的补丁包和所述配置信息上传至服务器进行发布。
12.根据权利要求11所述的装置,其特征在于,所述第二处理模块具体用于:
随机生成128位的密钥,根据所述密钥采用AES加密算法加密补丁包;
对加密后的补丁包进行MD5处理,整合MD5值和对应的AES密钥得到一字符串;
使用RSA私钥对所述字符串进行签名,并进行转码。
13.根据权利要求11或12所述的装置,其特征在于,所述第一处理模块具体用于:
所述应用程序的文件进行差异化处理,获取其中相较于上一个版本变动的脚本文件和资源文件进行打包,得到所述补丁包,并在所述补丁包中记录变动信息。
14.根据权利要求11或12所述的装置,其特征在于,所述第三处理模块获取的所述配置信息还包括所述应用程序版本号、渠道号以及开关选项中的至少一个。
15.根据权利要求11或12所述的装置,其特征在于,所述发布模块还用于在所述服务器中的接口中设置维度策略。
16.一种资源更新装置,其特征在于,包括:
处理模块,用于获取待更新的应用程序的资源的配置信息,所述配置信息包括所述应用程序的补丁包的版本号、所述补丁包的地址、所述补丁包的签名;
校验模块,用于根据所述配置信息下载所述补丁包,并对所述补丁包的签名进行校验;
解密模块,用于若所述补丁包的签名校验成功,对所述补丁包进行解密,得到所述应用程序相较于上一个版本变动的脚本文件和资源文件;
所述处理模块还用于将所述脚本文件和所述资源文件存储在所述应用程序的目录下,并生成加载信息。
17.根据权利要求16所述的装置,其特征在于,所述处理模块还用于若所述补丁包的签名校验失败,则放弃更新。
18.根据权利要求15或16所述的装置,其特征在于,所述校验模块具体用于:
采用RSA公钥对所述补丁包进行解密,得到MD5值和对应的AES密钥组成的字符串;
校验所述补丁包的MD5值是否一致;
若一致,则确定对所述补丁包的签名校验成功;否则确定对所述补丁包的签名校验失败。
19.根据权利要求18所述的装置,其特征在于,所述解密模块具体用于:
采用所述AES密钥对所述补丁包进行解密,得到所述脚本文件和所述资源文件。
20.根据权利要求15或16所述的装置,其特征在于,所述处理模块具体用于:
根据配置的维度信息,下载所述维度信息对应的配置信息;
确定所述配置信息中是否包括需要的版本号和/或渠道号;
若所述配置信息中不包括需要的版本号和/或渠道号,则放弃更新。
CN201810504113.3A 2018-05-23 2018-05-23 资源发布方法、更新方法和装置 Pending CN108710500A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810504113.3A CN108710500A (zh) 2018-05-23 2018-05-23 资源发布方法、更新方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810504113.3A CN108710500A (zh) 2018-05-23 2018-05-23 资源发布方法、更新方法和装置

Publications (1)

Publication Number Publication Date
CN108710500A true CN108710500A (zh) 2018-10-26

Family

ID=63869486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810504113.3A Pending CN108710500A (zh) 2018-05-23 2018-05-23 资源发布方法、更新方法和装置

Country Status (1)

Country Link
CN (1) CN108710500A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189459A (zh) * 2018-11-16 2019-01-11 北京微播视界科技有限公司 应用程序更新方法、装置、电子设备、服务器及存储介质
CN109408486A (zh) * 2018-10-29 2019-03-01 珠海格力电器股份有限公司 文件发布方法和系统、发布服务器和文件生成装置
CN109885990A (zh) * 2019-03-11 2019-06-14 腾讯科技(深圳)有限公司 脚本管理方法
CN110278115A (zh) * 2019-06-20 2019-09-24 京东方科技集团股份有限公司 热更新方法及装置
CN112016928A (zh) * 2019-05-31 2020-12-01 华控清交信息科技(北京)有限公司 一种支付方法、装置和用于支付的装置
CN112073520A (zh) * 2020-09-09 2020-12-11 北京金山云网络技术有限公司 数据处理方法、装置和电子设备
CN112434282A (zh) * 2019-08-26 2021-03-02 美光科技公司 差分写入操作
WO2021147668A1 (zh) * 2020-01-23 2021-07-29 华为技术有限公司 一种软件升级方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699410A (zh) * 2013-12-20 2014-04-02 北京奇虎科技有限公司 一种应用程序的更新方法和装置
CN105656889A (zh) * 2015-12-30 2016-06-08 东软集团股份有限公司 WebApp的发布方法、服务器及客户端
US20170052776A1 (en) * 2015-08-21 2017-02-23 Tata Consultancy Services Limited Computer implemented method and system for automatically deploying and versioning scripts in a computing environment
CN106502725A (zh) * 2016-09-30 2017-03-15 歌尔科技有限公司 应用程序的升级方法、设备及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699410A (zh) * 2013-12-20 2014-04-02 北京奇虎科技有限公司 一种应用程序的更新方法和装置
US20170052776A1 (en) * 2015-08-21 2017-02-23 Tata Consultancy Services Limited Computer implemented method and system for automatically deploying and versioning scripts in a computing environment
CN105656889A (zh) * 2015-12-30 2016-06-08 东软集团股份有限公司 WebApp的发布方法、服务器及客户端
CN106502725A (zh) * 2016-09-30 2017-03-15 歌尔科技有限公司 应用程序的升级方法、设备及电子设备

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408486A (zh) * 2018-10-29 2019-03-01 珠海格力电器股份有限公司 文件发布方法和系统、发布服务器和文件生成装置
CN109408486B (zh) * 2018-10-29 2020-10-30 珠海格力电器股份有限公司 文件发布方法和系统、发布服务器和文件生成装置
CN109189459A (zh) * 2018-11-16 2019-01-11 北京微播视界科技有限公司 应用程序更新方法、装置、电子设备、服务器及存储介质
CN109885990B (zh) * 2019-03-11 2021-01-29 腾讯科技(深圳)有限公司 脚本管理方法
CN109885990A (zh) * 2019-03-11 2019-06-14 腾讯科技(深圳)有限公司 脚本管理方法
CN112016928B (zh) * 2019-05-31 2024-01-16 华控清交信息科技(北京)有限公司 一种支付方法、装置和用于支付的装置
CN112016928A (zh) * 2019-05-31 2020-12-01 华控清交信息科技(北京)有限公司 一种支付方法、装置和用于支付的装置
US11797296B2 (en) 2019-06-20 2023-10-24 Boe Technology Group Co., Ltd. Hot updating method of script file package and hot updating device of script file package
CN110278115A (zh) * 2019-06-20 2019-09-24 京东方科技集团股份有限公司 热更新方法及装置
CN110278115B (zh) * 2019-06-20 2022-11-08 京东方科技集团股份有限公司 热更新方法及装置
CN112434282A (zh) * 2019-08-26 2021-03-02 美光科技公司 差分写入操作
CN112434282B (zh) * 2019-08-26 2022-05-17 美光科技公司 差分写入操作
US11508433B2 (en) 2019-08-26 2022-11-22 Micron Technology, Inc. Updating program files of a memory device using a differential write operation
WO2021147668A1 (zh) * 2020-01-23 2021-07-29 华为技术有限公司 一种软件升级方法及设备
CN112073520A (zh) * 2020-09-09 2020-12-11 北京金山云网络技术有限公司 数据处理方法、装置和电子设备

Similar Documents

Publication Publication Date Title
CN108710500A (zh) 资源发布方法、更新方法和装置
WO2020042778A1 (zh) 固件升级方法及装置
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
US9311487B2 (en) Tampering monitoring system, management device, protection control module, and detection module
US8332823B2 (en) Application program verification system, application program verification method and computer program
US10880100B2 (en) Apparatus and method for certificate enrollment
US11128470B2 (en) Methods and systems for automatic blockchain deployment based on cloud platform
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
JP2016515235A5 (zh)
CN110362990A (zh) 应用安装的安全处理方法、装置及系统
CN111177801B (zh) 电子文档的签章方法、装置、存储介质和电子设备
GB2471282A (en) Provision of Cryptographic Services via an API
JP2004280284A (ja) 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
CN102024107A (zh) 应用软件控制平台、开发者终端、分发系统及方法
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN111131278A (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN109214146A (zh) 应用软件的签名方法、验签方法和装置
CN104426658A (zh) 对移动终端上的应用进行身份验证的方法及装置
CN115604038B (zh) 基于区块链和边缘计算的云存储数据审计系统及方法
CN112800393A (zh) 授权认证、软件开发工具包生成方法、装置及电子设备
CN115150821A (zh) 离线包的传输、存储方法及装置
CN116455572B (zh) 数据加密方法、装置及设备
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
CN109784072B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181026