实现下载运行付费应用的方法、服务器和装置与流程

文档序号:16535982发布日期:2019-01-08 19:54阅读:281来源:国知局
实现下载运行付费应用的方法、服务器和装置与流程

本发明涉及计算机技术领域,具体涉及实现下载运行付费应用的方法、服务器和装置,以及一种计算设备和计算机可读存储介质。



背景技术:

智能移动设备已经成为用户生活中离不开的工具之一,为了实现智能移动设备的各种功能,如游戏、支付等,智能移动设备需要下载运行各种各样的应用,可见应用的开发已经符合用户越来越多的应用需求,并且一些应用作为收费应用可以为应用开发者带来良好的经济利益。

但是,当一些收费应用发布后,会遭到破解者对应用进行破解,让用户免费下载使用,这就造成应用开发者的经济损失,也损害了应用开发者的开发兴趣。因此,上述问题驱动着应用开发者对应用采取一些保护措施,以保护开发者的利益。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的实现下载运行付费应用的方法、服务器和装置,以及计算设备和计算机可读存储介质。

根据本发明的一个方面,提供了一种实现下载运行付费应用的方法,该方法包括:

获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器;

当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件;

当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

可选地,该方法进一步包括:获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存;

在所述用共享秘钥c对该安装包中的dex文件进行加密生成npk文件之后,该方法还包括:从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’;

在所述通过约定的方式将共享秘钥c告知客户端之前,该方法还包括:从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

可选地,所述将支付信息与所述客户端所在的用户设备进行绑定后保存包括:将用户设备标识和完成支付的相应订单信息对应保存到验证服务器;

所述根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费包括:根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

可选地,该方法进一步包括:

如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

可选地,所述通过约定的方式将共享秘钥c告知客户端包括:

与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;

将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

根据本发明的一个方面,还提供了一种实现付费应用的下载运行的方法,其中,该方法包括:

根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件;

当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求;

获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

可选地,该方法进一步包括:

当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,拒绝在本用户设备上加载运行该付费应用。

可选地,所述获取服务器在验证通过后告知的共享秘钥c包括:

与服务器协商公钥dh;

接收服务器发送的dc,使用dh对dc进行解密,获得c;

其中,所述dc是服务器使用公钥dh对共享密钥c进行加密生成的。

根据本发明的一个方面,提供了一种实现下载运行付费应用的服务器,其中,该服务器包括:

应用提交处理单元,适于获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器;

应用购买处理单元,适于当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件;

应用下载运行处理单元,适于当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

可选地,所述应用提交处理单元,进一步在获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存;还适于在用共享秘钥c对该安装包中的dex文件进行加密生成npk文件之后,从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’;

所述应用下载运行处理单元,适于在通过约定的方式将共享秘钥c告知客户端之前,从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

可选地,所述应用购买处理单元,还适于在完成支付流程后,将用户设备标识和完成支付的相应订单信息对应保存到验证服务器;

所述应用下载运行处理单元,适于根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

可选地,所述应用下载运行处理单元,适于如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

可选地,所述应用下载运行处理单元,适于与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

根据本发明的一个方面,还提供了一种实现下载运行付费应用的装置,其中,该装置配置于用户设备上,该装置包括:

购买处理单元,适于根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件;

验证处理单元,适于当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求;

运行加载单元,适于获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

可选地,所述验证处理单元,适于当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,通知所述运行加载单元拒绝在本用户设备上加载运行该付费应用。

可选地,验证处理单元,适于与服务器协商公钥dh;接收服务器发送的dc,使用dh对dc进行解密,获得c;

其中,所述dc是应用服务器使用公钥dh对共享密钥c进行加密生成的。

根据本发明的一个方面,提供了一种计算设备,该计算设备包括:处理器,以及存储有可在处理器上运行的计算机程序的存储器;

其中,所述处理器,用于在执行所述存储器中的计算机程序时如上任一项所述的方法。

根据本发明的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上任一项所述的方法。

在本发明的技术方案中,对付费应用的dex文件进行加密得到npk文件,将剩余的资源文件压缩为res文件,用户设备购买和下载付费应用均通过制定的客户端,并且在用户打开下载的应用时由客户端通过查询服务器对该用户设备的付费情况进行验证,只有通过验证时客户端才通过调用虚拟机对npk文件进行解密,进而运行和加载该付费应用。可见,通过本发明的技术方案,能够防止付费应用被破解,防止应用开发者的经济损失,保证应用开发者的开发兴趣,以及保护应用开发者的利益。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的实现下载运行付费应用的方法的流程示意图;

图2示出了根据本发明一个实施例的实现下载运行付费应用的方法的流程示意图;

图3示出了根据本发明另一个实施例的上载付费应用的方法的流程示意图;

图4示出了根据本发明一个实施例的实现下载运行付费应用的流程示意图;

图5示出了根据本发明一个实施例的实现下载运行付费应用的服务器的结构示意图;

图6示出了根据本发明一个实施例的实现下载运行付费应用的装置的结构示意图;

图7示出了根据本发明一个实施例的计算设备的结构示意图;

图8示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的实现下载运行付费应用的方法的流程示意图,从服务器侧进行说明。如图1所示,该方法包括:

步骤s110,获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器。

步骤s120,当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件。

步骤s130,当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

当用户在用户设备上执行打开付费应用的操作时,客户端向服务器发送请求,服务器对用户设备对付费应用的付费情况进行验证,当验证通过时才向客户端发送共享密钥,使得客户端通过调用虚拟机整合付费应用的npk文件和res文件,即为:解压res,产生apk的目录结构,用共享密钥解密npk获得dex,生成可运行的apk,进而加载并运行。

可见,通过本发明的方案,防止付费应用被破解,防止应用开发者的经济损失,保证应用开发者的开发兴趣,以及保护应用开发者的利益。

考虑到只要获得共享密钥就可以对付费应用的安装包的npk文件进行解密,因此,为保证共享密钥c的安全,本发明的一个实施例中还对共享密钥c进行加密。

在本发明的一个实施例中,图1所示的方法进一步包括:获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存。在步骤s110中的用共享秘钥c对该安装包中的dex文件进行加密生成npk文件之后,图1所示的方法还包括:从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’;在步骤s130中的通过约定的方式将共享秘钥c告知客户端之前,图1所示的方法还包括:从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

本实施例中,是通过公私密钥的方式对共享密钥进行加密,通过公钥对密钥加密后,只能通过私钥才能解密,也就是说,本实施例中,公钥b对共享秘钥c加密获得c’后,利用公钥b是无法对c’解密的,只能通过私钥a才能对c’进行解密以共享秘钥c,这样就可以保证共享密钥c的安全。

而且,在本实施例中,为了进一步保证共享密钥c的安全,本地仅保存c’,即仅保存加密后的共享密钥c,私钥a和公钥b是保存在密钥服务器,对共享秘钥c进行删除处理。

在对提交的付费应用的安装包加密时,仅对安装包的dex文件进行加密,那么在加密前需要对提交的付费应用的安装包进行解密。本实施例针对的是安卓系统的付费应用的安装包,即安卓安装包,安卓安装包解压后获得付费应用的dex文件、资源文件、androidmanifest.xml文件等,本实施例中,是对付费应用的dex文件进行加密,其他文件压缩成res文件。

为了完成对用户设备是否为付费应用付费的验证,在用户设备完成支付流程后,需要对该用户设备的支付信息进行保存。

在本发明的一个实施例中,图1所示方法的步骤s120中的完成支付流程后将支付信息与所述客户端所在的用户设备进行绑定后保存包括:在完成支付流程后,将将用户设备标识和完成支付的相应订单信息对应保存到验证服务器。图1所示方法的步骤s130中的根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费包括:根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

本实施例中,将用户设备的支付信息保存在验证服务器,在保存时,需要将支付信息与用户设备标识对应保存,例如,用户设备的国际移动设备识别码imei(internationalmobileequipmentidentity)。

当需要进行验证时,向验证服务器发送验证请求,该验证请求中包括需要验证的用户设备标识,这样就可以从验证服务器获取与该用户设备标识对应的订单信息,然后根据获取到的订单信息确定该用户设备是否为该付费应用付费。

在图1所示的方法中,在确定用户设备付费后,客户端就可以调用虚拟机来完整对付费应用的加载运行。但是如果确定用户设备没有付费,那么客户端就拒绝加载运行该付费应用。

在本发明的一个实施例中,图1所示的方法进一步包括:如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

通过本实施例就可以保证用户设备在未付费的情况下不能使用该付费应用,有效保护应用开发者的利益。

在本发明的一个实施例中,图1所示的方法中步骤s130中的通过约定的方式将共享秘钥c告知客户端包括:与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

考虑到如果将共享密钥c直接发送给客户端,有可能在发送的过程中被截获,无法保证付费应用的安全性,因此,在本实施例中,当服务器将共享密钥c发送给客户端时,对共享密钥进行加密后再发送。具体地,是服务器与客户端协商一个公钥dh,使用该公钥dh对c进行加密,生成dc;然后将dc发送给客户端,然后客户端根据dh对dc进行解密,获得c。

图2示出了根据本发明一个实施例的实现下载运行付费应用的方法的流程示意图,从客户端侧进行说明。如图2所示,该方法包括:

步骤s210,根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件。

步骤s220,当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求。

步骤s230,获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

图2所示的方法中,在用户设备上购买、下载和打开付费应用都是通过客户端来完成。这里的客户端可以是渠道商的客户端,例如360手机助手客户端软件等。当客户端收到用户打开付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求,接收服务器返回的验证结果。

当验证结果是验证通过后,客户端获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

在本发明的一个实施例中,图2所示的方法进一步包括:当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,拒绝在本用户设备上加载运行该付费应用。并在用户设备上提示用户未对该付费应用付费。

这里是服务器验证没有通过的情况,服务器会向客户端发送用户设备未为该付费应用付费的消息,这时客户端会拒绝打开该付费应用的请求,并进行未付费提示。

可见,通过图2所示的方法,可以防止付费应用被破解,防止应用开发者的经济损失,保证应用开发者的开发兴趣,以及保护应用开发者的利益。

在本发明的一个实施例中,图2所示的方法的步骤s230中的获取服务器在验证通过后告知的共享秘钥c包括:与服务器协商公钥dh;接收服务器发送的dc,使用dh对dc进行解密,获得c;其中,dc是服务器使用公钥dh对共享密钥c进行加密生成的。

对应于图1所示的方法的实施例中的在服务器将共享密钥c发送给客户端时,需要对共享密钥c进行加密,则在验证通过后,客户端接收到的是共享密钥c加密后的dc,为了获得共享密钥c,则可以使用协商的公钥dh对dc进行解密。

在以下的图3和图4中对本发明的技术方案进一步进行详细说明。其中,服务器和客户端是分发应用的渠道商的服务器和客户端。

图3示出了根据本发明另一个实施例的上载付费应用的方法的流程示意图。如图3所示,用户通过开发者平台创建付费应用app后,对应该付费应用app生成公私密钥(a,b)和共享密钥c,并上传到渠道商服务器。渠道商服务器将公私密钥(a,b)发送给密钥服务器进行保存。当用户向渠道商服务器提交了该付费应用app的安装包apk后,渠道商服务器先解析该apk,使用共享密钥c对付费应用app的apk中的dex文件进行加密生成npk文件,并将剩余的资源文件压缩为res文件,向密钥服务器请求公钥b,密钥服务器返回公钥b后,使用公钥b对共享密钥c进行加密获得加密后的c’,将c’保存在本地,删除共享密钥c。渠道商服务器将npk文件和res文件上传到下载服务器,以便下载服务器保存该付费应用app的npk文件和res文件。

图4示出了根据本发明一个实施例的实现下载运行付费应用的方法流程示意图。在本实施例中,为了完成本发明的技术方案,渠道商客户端集成了付费sdk,相当于将渠道商客户端变成一个分身程序。

如图4所示,包括支付流程和下载运行流程。当用户在用户设备上通过渠道商客户端发送购买app的请求时,渠道商服务器进行下单处理,渠道商服务器将订单信息发送给支付网关,支付网关生成对应的订单并将相应的订单号返回给渠道商服务器,客户端侧获取到订单号后用户在用户设备上对支付该订单,支付网关根据支付结果向渠道商服务器返回支付结果,渠道商服务器将用户设备标识和相应订单信息发送给验证服务器,以便验证服务器将用户设备标识和相应订单信息对应保存。渠道商服务器允许用户设备下载该付费应用。用户设备从下载服务器下载该付费应用的npk文件res文件(图中未示出)。当用户在用户设备上执行打开付费应用app的操作时,渠道商客户端向付费sdk发送调用请求,付费sdk向渠道商服务器发送验证用户设备是否购买该付费应用的验证请求,该验证请求中包含用户设备的标识。渠道商服务器根据该验证请求向验证服务器请求该用户设备对应的订单信息,渠道商服务器根据验证服务器返回的订单信息验证该用户设备是否已经付费,如果验证成功,即用户设备已付费,则渠道商服务器向密钥服务器请求私钥a,用户私钥a对c’进行解密获得共享密钥c;然后渠道商服务器与渠道商客户端侧的付费sdk协商共享公钥dh,使用dh对c加密得到dc,向客户端侧的付费sdk发送对共享要c加密后的dc;客户端侧的付费sdk通过调用虚拟机使用dh对dc解密获得共享密钥c,使用c对npk进行解密,以及解压res文件,得到付费应用的可运行apk后加载并运行。如果验证未付费,则渠道商服务器向渠道商客户端侧发送用户设备未为该付费应用付费的消息,渠道商客户端拒绝对该用户设备下载的该付费应用的安装文件进行加载运行处理。

图5示出了根据本发明一个实施例的实现下载运行付费应用的服务器的结构示意图。如图5所示,该实现下载运行付费应用的服务器500包括:

应用提交处理单元510,适于获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器。

应用购买处理单元520,适于当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件。

应用下载运行处理单元530,适于当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

通过本实施例,首先利用共享密钥对提交的付费应用的安装文件中的dex文件进行加密生成npk文件后,将安装文件中的其他文件压缩为res文件。下载到npk文件和res文件还不能够直接加载运行。只有在用户设备对该付费应用是否付费的验证通过后,该用户设备上才能加载运行该付费应用。

可见,通过本实施例的方案,可以防止付费应用被破解,防止应用开发者的经济损失,保证应用开发者的开发兴趣,以及保护应用开发者的利益。

考虑到只要获得共享密钥就可以对付费应用的安装包的特定文件进行解密,因此,为保证共享密钥c的安全,需要对共享密钥c进行加密。

在本发明的一个实施例中,图5所示的应用提交处理单元510,进一步在获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存;还适于在用共享秘钥c对该安装包中的特定文件进行加密之后,从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’。

应用下载运行处理单元530,适于在通过约定的方式将共享秘钥c告知客户端之前,从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

本实施例中,是通过公私密钥的方式对共享密钥进行加密,通过公钥对密钥加密后,只能通过私钥才能解密,也就是说,本实施例中,公钥b对共享秘钥c加密获得c’后,利用公钥b是无法对c’解密的,只能通过私钥a才能对c’进行解密以共享秘钥c,这样就可以保证共享密钥c的安全。

而且,在本实施例中,为了进一步保证共享密钥c的安全,服务器本地仅保存c’,即仅保存加密后的共享密钥c,私钥a和公钥b是保存在密钥服务器,对共享秘钥c进行删除处理。

在对提交的付费应用的安装包加密时,仅对安装包的dex文件进行加密,那么在加密前需要对提交的付费应用的安装包进行解密。本实施例针对的是安卓系统的付费应用的安装包,即安卓安装包,安卓安装包解压后获得付费应用的dex文件、资源文件、androidmanifest.xml文件等,本实施例中,是对付费应用的dex文件进行加密,其余文件压缩为res文件。

为了完成对用户设备是否为付费应用付费的验证,在用户设备完成支付流程后,需要对该用户设备的支付信息进行保存。

在本发明的一个实施例中,图5所示方法的应用购买处理单元520,还适于在完成支付流程后,将用户设备标识和完成支付的相应订单信息对应保存到验证服务器。

应用下载运行处理单元530,适于根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

本实施例中,将用户设备的支付信息保存在验证服务器,在保存时,需要将支付信息与用户设备标识对应保存,例如,用户设备的国际移动设备识别码imei(internationalmobileequipmentidentity)。

当需要进行验证时,向验证服务器发送验证请求,该验证请求中包括需要验证的用户设备标识,这样就可以从验证服务器获取与该用户设备标识对应的订单信息,然后根据获取到的订单信息确定该用户设备是否为该付费应用付费。

在本发明的一个实施例总,图5所示的应用下载运行处理单元530,适于如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

通过本实施例就可以保证用户设备在未付费的情况下不能使用该付费应用,有效保护应用开发者的利益。

在本发明的一个实施例中,图5所示的应用下载运行处理单元530适于与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

考虑到如果将共享密钥c直接发送给客户端,有可能在发送的过程中被截获,无法保证付费应用的安全性,因此,在本实施例中,当将共享密钥c发送给客户端时,对共享密钥进行加密后再发送。具体地,是与客户端协商一个公钥dh,使用该公钥dh对c进行加密,生成dc;然后将dc发送给客户端,然后客户端根据dh对dc进行解密,获得c。

图6示出了根据本发明一个实施例实现下载运行付费应用的装置的结构示意图。如图6所示,该实现下载运行付费应用的装置600包括:

购买处理单元610,适于根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件;

验证处理单元620,适于当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求;

运行加载单元630,适于获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

在本发明的一个实施例中,图6所示的验证处理单元620,适于当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,通知所述运行加载单元拒绝在本用户设备上加载运行该付费应用。

这里是服务器验证没有通过的情况,服务器会向客户端发送用户设备未为该付费应用付费的消息,这时客户端会拒绝该调用请求,即拒绝运行加载该付费应用。

在本发明的一个实施例中,图6所示的验证处理单元620,适于与服务器协商公钥dh;接收服务器发送的dc,使用dh对dc进行解密,获得c;其中,dc是服务器使用公钥dh对共享密钥c进行加密生成的。

对应于图1所示的方法的实施例中的在服务器将共享密钥c发送给客户端时,需要对共享密钥c进行加密,则在验证通过后,客户端接收到的是共享密钥c加密后的dc,为了获得共享密钥c,则可以使用协商的公钥dh对dc进行解密。

综上所述,在本发明的技术方案中,对付费应用的dex文件进行加密得到npk文件,将剩余的资源文件压缩为res文件,用户设备购买和下载付费应用均通过制定的客户端,并且在用户打开下载的应用时由客户端通过查询服务器对该用户设备的付费情况进行验证,只有通过验证时客户端才通过调用虚拟机对npk文件进行解密,进而运行和加载该付费应用。可见,通过本发明的技术方案,能够防止付费应用被破解,防止应用开发者的经济损失,保证应用开发者的开发兴趣,以及保护应用开发者的利益。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的实现下载运行付费应用的服务器、装置和计算机可读存储介质中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

例如,图7示出了根据本发明一个实施例的计算设备的结构示意图。该计算设备700传统上包括处理器710和被安排成存储计算机可执行指令(程序代码)的存储器720。存储器720可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器720具有存储用于执行图1或图2所示的以及各实施例中的任何方法步骤的程序代码740的存储空间730。例如,用于程序代码的存储空间730可以包括分别用于实现上面的方法中的各种步骤的各个程序代码740。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图8所述的计算机可读存储介质800。该计算机可读存储介质800可以具有与图7的服务器中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码810,即可以由诸如710之类的处理器读取的程序代码,当这些程序代码由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明的实施例公开了a1、一种实现下载运行付费应用的方法,其中,该方法包括:

获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器;

当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件;

当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

a2、如a1所述的方法,其中,

该方法进一步包括:获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存;

在所述用共享秘钥c对该安装包中的dex文件进行加密生成npk文件之后,该方法还包括:从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’;

在所述通过约定的方式将共享秘钥c告知客户端之前,该方法还包括:从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

a3、如a1所述的方法,其中,

所述将支付信息与所述客户端所在的用户设备进行绑定后保存包括:将用户设备标识和完成支付的相应订单信息对应保存到验证服务器;

所述根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费包括:根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

a4、如a1所述的方法,其中,该方法进一步包括:

如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

a5、如a1所述的方法,其中,所述通过约定的方式将共享秘钥c告知客户端包括:

与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;

将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

本发明的实施例还公开了b6、一种实现付费应用的下载运行的方法,其中,该方法包括:

根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件;

当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求;

获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

b7、如b6所述的方法,其中,该方法进一步包括:

当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,拒绝在本用户设备上加载运行该付费应用。

b8、如b6所述的方法,其中,所述获取服务器在验证通过后告知的共享秘钥c包括:

与服务器协商公钥dh;

接收服务器发送的dc,使用dh对dc进行解密,获得c;

其中,所述dc是服务器使用公钥dh对共享密钥c进行加密生成的。

本发明的实施例还公开了c9、一种实现下载运行付费应用的服务器,其中,该服务器包括:

应用提交处理单元,适于获取为指定付费应用分配的共享秘钥c;当接收到提交的该付费应用的安装包时,用共享秘钥c对该安装包中的dex文件进行加密生成npk文件,将该安装包中的dex文件以外的文件进行压缩生成res文件;将所述npk文件和res文件上传到下载服务器;

应用购买处理单元,适于当收到来自客户端的购买该付费应用的订单请求时,完成支付流程,并将支付信息与所述客户端所在的用户设备进行绑定后保存,允许所述客户端所在的用户设备从下载服务器下载该付费应用的npk文件和res文件;

应用下载运行处理单元,适于当收到来自客户端的验证自身所在用户设备是否为该付费应用付费的验证请求时,根据所保存的支付信息与用户设备的绑定关系确定该用户设备是否付费;如果已付费,通过约定的方式将共享秘钥c告知客户端,使得客户端通过调用虚拟机解压res文件并根据共享秘钥c对npk文件进行解密后,在客户端所在用户设备上加载并运行该付费应用。

c10、如c9所述的服务器,其中,

所述应用提交处理单元,进一步在获取为指定付费应用分配的共享秘钥c的时,还获取为该付费应用分配的私钥a和公钥b,将私钥a和公钥b发送到密钥服务器保存;还适于在用共享秘钥c对该安装包中的dex文件进行加密生成npk文件之后,从密钥服务器获取公钥b,使用公钥b对共享秘钥c加密,生成c’,在本地只保存c’;

所述应用下载运行处理单元,适于在通过约定的方式将共享秘钥c告知客户端之前,从密钥服务器获取私钥a,使用私钥a对c’进行解密,获得c。

c11、如c9所述的服务器,其中,

所述应用购买处理单元,还适于在完成支付流程后,将用户设备标识和完成支付的相应订单信息对应保存到验证服务器;

所述应用下载运行处理单元,适于根据该用户设备的标识从验证服务器获取与该用户设备对应的订单信息,根据获取到的订单信息确定该用户设备是否为该付费应用付费。

c12、如c9所述的服务器,其中,

所述应用下载运行处理单元,适于如果确定该用户设备未付费,则将用户设备未为该付费应用付费的消息告知客户端,使得客户端拒绝在该用户设备上加载运行该付费应用。

c13、如c9所述的服务器,其中,

所述应用下载运行处理单元,适于与客户端协商公钥dh,使用公钥dh对c进行加密,生成dc;将dc发送给客户端,使得客户端根据dh对dc进行解密,获得c。

本发明的实施例还公开了d14、一种实现下载运行付费应用的装置,其中,该装置配置于用户设备上,该装置包括:

购买处理单元,适于根据用户的操作指令向服务器发送购买该付费应用的订单请求,接收服务器返回的订单号,完成支付流程,并从下载服务器下载该付费应用的安装文件,该安装文件包括npk文件和res文件;

验证处理单元,适于当收到用户打开所述付费应用的操作指令时,向服务器发送验证本用户设备是否为该付费应用付费的验证请求;

运行加载单元,适于获取服务器在验证通过后告知的共享秘钥c,通过调用虚拟机解压该付费应用的res文件并根据共享秘钥c对npk文件进行解密后,在本用户设备上加载并运行该付费应用。

d15、如d14所述的装置,其中,

所述验证处理单元,适于当获取到服务器在验证失败后告知的本用户设备未为该付费应用付费的消息时,通知所述运行加载单元拒绝在本用户设备上加载运行该付费应用。

d16、如d14所述的装置,其中,

验证处理单元,适于与服务器协商公钥dh;接收服务器发送的dc,使用dh对dc进行解密,获得c;

其中,所述dc是应用服务器使用公钥dh对共享密钥c进行加密生成的。

本发明的实施例还公开了e17、一种计算设备,其特征在于,该计算设备包括:处理器,以及存储有可在处理器上运行的计算机程序的存储器;

其中,所述处理器,用于在执行所述存储器中的计算机程序时执行a1-a8中任一项所述的方法。

本发明的实施例还公开了f18、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现a1-a8中任一项所述的方法。

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