信息处理方法和用于信息处理的客户端、服务器端与流程

文档序号:12064128阅读:274来源:国知局
信息处理方法和用于信息处理的客户端、服务器端与流程

本发明涉及计算机领域,更具体地涉及一种信息处理方法、用于信息处理的客户端和用于信息处理的服务器端。



背景技术:

软件开发工具包(Software Development Kit,SDK)广义上是指辅助开发某一类软件的相关文档、范例和工具的集合。SDK可以简单地为某个程序设计语言提供应用程序接口(Application Program Interface,API)的一些文件。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考材料澄清疑点的支持文档。

目前市场上很多软件都会以SDK的形式提供给开发者使用。开发者在获得相应的SDK供应商授权后,方可使用SDK的功能。具体地,开发者可以通过在自己的应用中嵌入SDK的方式来使用SDK中的功能。然而,目前供应商采取的SDK授权方式或者授权信息的安全性较低,往往在提供给某些开发者SDK的同时使开发者获得SDK的授权。因此,一旦开发者在初始获得授权之后,SDK就可能被无限“复制性”使用,或者被一些非法用户盗用,这将给供应商造成损失。基于上述问题,本发明提供一种具有较高安全性的用于实现SDK授权的信息处理方法。



技术实现要素:

考虑到上述问题而提出了本发明。本发明提供了一种信息处理方法、用于信息处理的客户端和用于信息处理的服务器端。

根据本发明一方面,提供了一种信息处理方法。该方法包括:获取软件开发工具包;获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息;以及将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。

示例性地,客户端信息还包括软件开发工具包所对应的特定应用的标识符,特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。

示例性地,客户端信息还包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。

示例性地,环境信息包括以下项中的一项或多项:客户端获取软件开发工具包的系统时间、软件开发工具包的类型、软件开发工具包的版本号和软件开发工具包的应用平台。

示例性地,获取与软件开发工具包相关的客户端信息包括:获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及对初始信息进行综合,以获得客户端信息。

示例性地,在将客户端信息发送到服务器端之前,方法还包括:对客户端信息进行加密,以获得包括客户端信息的客户端密文;将客户端信息发送到服务器端包括:将客户端密文发送到服务器端。

示例性地,对客户端信息进行加密,以获得包括客户端信息的客户端密文包括:从软件开发工具包中提取服务器端的公钥;随机生成客户端的私钥;利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及将客户端的公钥添加到初始密文的头部,以获得客户端密文。

示例性地,方法还包括:接收服务器端发送的反馈信息。

示例性地,反馈信息包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,在接收服务器端发送的反馈信息之后,方法还包括:对服务器端密文进行解密,以获得授权密码。

示例性地,反馈信息包括软件开发工具包的授权密码和授权验证信息,方法还包括:根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括由服务器端计算获得的、客户端信息的服务器端哈希值,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能包括:计算客户端信息的客户端哈希值;将服务器端哈希值与客户端哈希值进行对比;以及如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括软件开发工具包的过期时间,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能包括:将客户端的当前系统时间与过期时间进行对比;如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括软件开发工具包的授权限制次数,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能包括:将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比;如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

根据本发明另一方面,提供了一种信息处理方法。该方法包括:接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息;基于客户端信息生成与软件开发工具包的授权相关的反馈信息;以及将反馈信息发送到客户端。

示例性地,基于客户端信息生成与软件开发工具包的授权相关的反馈信息包括:基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码;如果搜索到匹配的授权密码,则生成反馈信息,其中,反馈信息包括所搜索到的授权密码;否则,生成乱码信息和/或警告信息作为反馈信息。

示例性地,客户端信息还包括软件开发工具包所对应的特定应用的标识符,在基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码之前,方法还包括:基于特定应用的标识符在预存表单进行查询操作,预存表单用于存储授权应用的已知标识符;如果查询到与特定应用的标识符一致的已知标识符,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

示例性地,客户端信息还包括客户端的当前系统时间,在基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码之前,方法还包括:将客户端的当前系统时间与服务器端的当前系统时间进行对比;如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

示例性地,反馈信息包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括客户端信息的服务器端哈希值,基于客户端信息生成与软件开发工具包的授权相关的反馈信息包括:计算服务器端哈希值作为反馈信息的一部分。

示例性地,授权验证信息包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

根据本发明又一方面,提供了一种用于信息处理的客户端。该客户端包括:工具包获取模块,用于获取软件开发工具包;客户端信息获取模块,用于获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息;以及发送模块,用于将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。

示例性地,客户端信息还包括软件开发工具包所对应的特定应用的标识符,特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。

示例性地,客户端信息还包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。

示例性地,环境信息包括以下项中的一项或多项:客户端获取软件开发工具包的系统时间、软件开发工具包的类型、软件开发工具包的版本号和软件开发工具包的应用平台。

示例性地,客户端信息获取模块包括:初始信息获取子模块,用于获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及综合子模块,用于对初始信息进行综合,以获得客户端信息。

示例性地,客户端还包括:加密模块,用于对客户端信息进行加密,以获得包括客户端信息的客户端密文;发送模块包括:发送子模块,用于将客户端密文发送到服务器端。

示例性地,加密模块包括:公钥提取子模块,用于从软件开发工具包中提取服务器端的公钥;私钥生成子模块,用于随机生成客户端的私钥;加密子模块,用于利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及公钥添加子模块,用于将客户端的公钥添加到初始密文的头部,以获得客户端密文。

示例性地,客户端还包括:接收模块,用于接收服务器端发送的反馈信息。

示例性地,反馈信息包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,客户端还包括:解密模块,用于对服务器端密文进行解密,以获得授权密码。

示例性地,反馈信息包括软件开发工具包的授权密码和授权验证信息,客户端还包括:功能使用确定模块,用于根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括由服务器端计算获得的、客户端信息的服务器端哈希值,功能使用确定模块包括:哈希值计算子模块,用于计算客户端信息的客户端哈希值;哈希值对比子模块,用于将服务器端哈希值与客户端哈希值进行对比,如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括软件开发工具包的过期时间,功能使用确定模块包括:时间对比子模块,用于将客户端的当前系统时间与过期时间进行对比,如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括软件开发工具包的授权限制次数,功能使用确定模块包括:次数对比子模块,用于将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比,如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

根据本发明再一方面,提供了一种用于信息处理的服务器端。该服务器端包括:接收模块,用于接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息;反馈信息生成模块,用于基于客户端信息生成与软件开发工具包的授权相关的反馈信息;以及发送模块,用于将反馈信息发送到客户端。

示例性地,反馈信息生成模块包括搜索子模块、第一生成子模块和第二生成子模块,其中,搜索子模块用于基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码,如果搜索到匹配的授权密码,则启动第一生成子模块,否则启动第二生成子模块;第一生成子模块用于生成反馈信息,其中,反馈信息包括所搜索到的授权密码;第二生成子模块用于生成乱码信息和/或警告信息作为反馈信息。

示例性地,客户端信息还包括软件开发工具包所对应的特定应用的标识符,服务器端还包括查询模块、可授权确定模块和不可授权确定模块,其中,查询模块用于基于特定应用的标识符在预存表单中进行查询操作,如果查询到与特定应用的标识符一致的已知标识符,则启动可授权确定模块,否则启动不可授权确定模块,其中,预存表单用于存储授权应用的已知标识符;可授权确定模块用于确定客户端是可授权用户并启动搜索子模块;不可授权确定模块用于确定客户端不是可授权用户并启动第二生成子模块以生成乱码信息和/或警告信息作为反馈信息。

示例性地,客户端信息还包括客户端的当前系统时间,服务器端还包括时间对比模块、可授权确定模块和不可授权确定模块,其中,时间对比模块用于将客户端的当前系统时间与服务器端的当前系统时间进行对比,如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则启动可授权确定模块,否则启动不可授权确定模块;可授权确定模块用于确定客户端是可授权用户并启动搜索子模块;不可授权确定模块用于确定客户端不是可授权用户并启动第二生成子模块以生成乱码信息和/或警告信息作为反馈信息。

示例性地,反馈信息包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

示例性地,授权验证信息包括客户端信息的服务器端哈希值,反馈信息生成模块包括:计算子模块,用于计算服务器端哈希值作为反馈信息的一部分。

示例性地,授权验证信息包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

根据本发明实施例的信息处理方法、客户端和服务器端,客户端首先获取SDK的本体,随后再从服务器端请求获得SDK的授权,也就是说,由服务器端控制SDK在客户端上的授权。与现有的SDK授权方式相比,上述方式的授权安全性更高。

附图说明

通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1示出用于实现根据本发明实施例的信息处理方法、客户端或服务器端的示例电子设备的示意性框图;

图2示出根据本发明一个实施例的信息处理方法的示意性流程图;

图3示出根据本发明一个实施例的信息处理方法的示意性流程图;

图4示出了根据本发明一个实施例的用于信息处理的客户端的示意性框图;

图5示出了根据本发明一个实施例的用于信息处理的服务器端的示意性框图;以及

图6示出根据本发明一个实施例的信息处理系统的示意性框图。

具体实施方式

为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。

为了解决上文所述的问题,本发明实施例提供一种信息处理方法、用于信息处理的客户端和用于信息处理的服务器端。根据上述方法、客户端和服务器端,客户端向服务器端发送包括软件开发工具包的环境信息的客户端信息,服务器端基于客户端发送的客户端信息确定客户端是否能够获得授权。在客户端能够获得授权的情况下,服务器端可以向客户端发送软件开发工具包的授权密码。客户端需要授权密码才能使用软件开发工具包。与现有的软件开发工具包的授权方式相比,上述方式可以提高软件开发工具包的授权安全性。

本文所述的客户端可以是移动终端(诸如智能手机、平板电脑等)、个人计算机等各种合适的计算设备。本文所述的服务器端可以是各种合适的具有服务器功能的计算设备。

首先,参照图1来描述用于实现根据本发明实施例的信息处理方法、客户端或服务器端的示例电子设备100。

如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108和数据获取装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。

所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。

所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能或服务器端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置108可以向外部(例如用户)输出各种信息(例如图像和/或声音),并且可以包括显示器、扬声器等中的一个或多个。

所述数据获取装置110可以获取信息处理所需的数据(例如软件开发工具包或客户端信息),并且将所采集的数据存储在所述存储装置104中以供其它组件使用。

示例性地,用于实现根据本发明实施例的信息处理方法、客户端或服务器端的示例电子设备可以在诸如个人计算机或远程服务器等的设备上实现。

下面,将参考图2描述根据本发明实施例的信息处理方法。该信息处理方法是用于客户端的信息处理方法。图2示出根据本发明一个实施例的信息处理方法200的示意性流程图。如图2所示,信息处理方法200包括以下步骤。

在步骤S210,获取软件开发工具包。

客户端可以从互联网上下载得到SDK或者从供应商处直接获取SDK。所述供应商可以是SDK的开发商或者代理SDK的中间商(SDK开发商的合作伙伴)。

如果客户端的用户(即软件开发者)期望使用SDK的功能,则其可以首先将SDK的本体下载到客户端,随后向服务器端请求SDK的授权密码。

在步骤S220,获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息。

SDK的环境信息是指与SDK自身及其运行环境相关的信息。例如,环境信息可以包括但不限于以下项中的一项或多项:客户端获取SDK的系统时间、SDK的类型、SDK的版本号和SDK的应用平台。

示例性地,当客户端获取SDK时,可以读取一次客户端当前的系统时间,作为SDK的环境信息之一。SDK的应用平台是指SDK所应用的系统平台,例如其可以是安卓(Android)平台或ios平台。

除SDK的环境信息之外,还可以将一些其他信息发送到服务器端,用于帮助判断客户端是否是可授权用户,即其是否有资格获得SDK的授权。因此,客户端信息可以包括除SDK的环境信息之外的其他信息。

在一个示例中,客户端信息还可以包括软件开发工具包所对应的特定应用的标识符,该特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。例如,假设SDK所对应的应用是XX微博,如果XX微博对于服务器端来说属于可授权用户,也就是说客户端有资格获得SDK的授权,则服务器端可以向客户端返回SDK的授权密码。反之,如果XX微博对于服务器端来说不属于可授权用户,则服务器端将不向客户端返回SDK的授权密码。

本文所述的特定应用的标识符可以是bundleID。bundleID在android平台上是android应用的包名(package name),在ios平台上是应用的程序包标识符(Bundle identifier)。本领域技术人员可以理解的是,bundleID具有排他性,同一客户端设备上的每个应用具有唯一的值,不同应用的bundleID具有不同的值。因此,根据SDK所对应的bundleID来对客户端进行SDK授权,可以保障SDK只应用在该客户端的一个应用上,即只对该客户端上的与bundleID对应的应用授权SDK。

在一个示例中,客户端信息还可以包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。本实施例中所涉及的客户端的当前系统时间和上文所述的环境信息中的、客户端获取SDK的系统时间可能是相同或相近的,因为程序的运行时间通常极为短暂,因此这两次获取系统时间的时刻可能非常接近,所获取的时间值相差不大。因此,可以分别获取两次系统时间,也可以仅获取一次系统时间并将所获取的时间分别作为客户端的当前系统时间和环境信息中的、客户端获取SDK的系统时间。

上述两种系统时间的作用不同。其中,客户端获取SDK的系统时间作为环境信息之一,主要用于由服务器端基于该信息搜索SDK的授权密码,这将在下文进行描述。客户端的当前系统时间可以用于由服务器端基于其确定客户端是否是可授权用户。例如,在服务器端接收到客户端的当前系统时间之后,可以将自身的当前系统时间与接收到的客户端的当前系统时间进行对比,如果二者相差过大,例如客户端的当前系统时间比服务器端的当前系统时间早两年多,则可以认为客户端不是可授权用户,即客户端没有资格获得SDK的授权。通过客户端的当前系统时间判断客户端是否是可授权用户的方式可以在一定程度上防止重放攻击,避免客户端在较长时间内重复性使用SDK。

可以理解,上述除环境信息之外的其他客户端信息仅是示例而非限制,客户端信息可以仅包括SDK的环境信息。服务器端可以直接基于SDK的环境信息搜索SDK的授权密码,而无需验证客户端是否有资格获得SDK的授权。

在步骤S230,将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。

客户端信息可以直接发送到服务器端,也可以经过加密和/或编码(例如Base64编码)之后发送到服务器端。服务器端基于客户端信息返回反馈信息。示例性地,在客户端有资格获得SDK的授权的情况下,服务器端可以基于SDK的环境信息搜索SDK的授权密码并将搜索到的授权密码返回给客户端。如果客户端没有资格获得SDK的授权或者服务器端没有搜索到SDK的授权密码,则服务器端可以向客户端返回乱码信息和/或警告信息等信息,以告知客户端其无法获得SDK的授权。

根据本发明实施例的信息处理方法,客户端首先获取SDK的本体,随后再从服务器端请求获得SDK的授权,也就是说,由服务器端控制SDK在客户端上的授权。与现有的SDK授权方式相比,上述方法的授权安全性更高。

示例性地,根据本发明实施例的信息处理方法可以在具有存储器和处理器的设备、装置或者系统中实现。

根据本发明实施例,步骤S220可以包括:获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及对初始信息进行综合,以获得客户端信息。

初始信息是客户端所获取的与SDK相关的分散信息。在一个示例中,可以直接将初始信息作为客户端信息发送到服务器端。在另一示例中,为了方便传输,可以将初始信息综合起来,将综合后的信息作为客户端信息发送到服务器端。示例性的,上述综合步骤可以包括按照一定格式将初始信息中的各种信息连接起来。例如,假设初始信息包括下述环境信息:客户端获取SDK的系统时间、SDK的类型、SDK的版本号和SDK的应用平台,并且初始信息还包括SDK所对应的bundleID,则可以将客户端获取SDK的系统时间、SDK的类型、SDK的版本号、SDK的应用平台和SDK所对应的bundleID按照一定顺序连接起来,形成一字符串。可以将该字符串作为客户端信息。示例性地,还可以对字符串进行进一步的转换、计算或编码等操作,将操作结果作为客户端信息。

对初始信息进行综合,可以方便初始信息的传输以及后期服务器端基于初始信息中的环境信息搜索SDK的授权密码。可以理解的是,客户端信息的格式可以在客户端与服务器端之间预先约定好,以使得服务器端能够正确识别客户端信息。

根据本发明实施例,在步骤S230之前,方法200还可以包括:对客户端信息进行加密,以获得包括客户端信息的客户端密文;步骤S230可以包括:将客户端密文发送到服务器端。

如上文所述,客户端信息可以直接发送到服务器端,也可以经过加密和/或编码(例如Base64编码)之后发送到服务器端。开发者的应用使用供应商的SDK,需要获得供应商的授权,需要与供应商的服务器端进行数据交互。如果数据交互之间缺少安全保护措施或者安全性较低,可能导致用户信息被盗,导致用户体验较差。通过加密处理,可以保证仅需要授权的用户端能够请求服务器端的授权,从而可以保障供应商的权益。此外,通过加密处理,客户端和服务器端之间的数据传输安全性提高,可以避免用户信息被盗用,从而可以提高用户体验。

根据本发明实施例,对客户端信息进行加密,以获得包括客户端信息的客户端密文可以包括:从软件开发工具包中提取服务器端的公钥;随机生成客户端的私钥;利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及将客户端的公钥添加到初始密文的头部,以获得客户端密文。

可选地,客户端获取到的SDK可以包括该SDK所对应的服务器端的公钥。在客户端获取SDK时,服务器端可以生成一对密钥对,包括服务器端的公钥和服务器端的私钥。服务器端的私钥保存在服务器端的存储器中。服务器端的公钥可以嵌入SDK中。可选的,每个客户端所获取的SDK中可以嵌入不同的服务器端的公钥,以提高加密的安全性。

客户端可以从SDK中提取服务器端的公钥。此外,客户端可以随机生成自己的私钥,所生成的私钥是随机的字符串。在客户端生成自己的私钥时,其可以同时生成客户端的公钥,客户端的公钥和客户端的私钥也是一对密钥对。随后,客户端可以基于客户端自己的私钥和服务器端的公钥对客户端信息进行加密,得到初始密文。随后,可以将客户端的公钥添加到初始密文的头部,获得客户端密文,并将最终获得的客户端密文发送到服务器端。将客户端的公钥添加到初始密文的头部,这样服务器端在接收到客户端密文之后,可以从其头部获取客户端的公钥,进而利用该客户端的公钥与服务器端自身的私钥对客户端密文进行解密。可选地,上述加密方式可以采用椭圆加密算法((Elliptic Curves Cryptography,ECC)实现。ECC加密算法是一种公钥加密体制。

可选地,在加密获得客户端密文之后,可以对客户端密文进行编码,例如Base64编码,这样可以使得信息更容易传输。此外,诸如Base64编码的编码方式可以使得编码后的信息人为可读,方便对信息进行检查、格式转换和编辑等。

根据本发明实施例,方法200还可以包括:接收服务器端发送的反馈信息。

服务器端将关于SDK的授权的反馈信息发送给客户端,客户端可以接收该反馈信息。如上文所述,如果客户端有资格获得SDK的授权并且服务器端搜索到SDK的授权密码,则服务器端可以将SDK的授权密码返回给客户端,客户端可以基于SDK的授权密码获得SDK的授权并使用SDK的功能。如果客户端没有资格获得SDK的授权或者服务器端没有搜索到SDK的授权密码,则服务器端可以向客户端返回乱码信息和/或警告信息等信息,客户端可以基于返回的信息获知其无法获得SDK的授权。

根据本发明实施例,反馈信息可以包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,在接收服务器端发送的反馈信息之后,方法200还可以包括:对服务器端密文进行解密,以获得授权密码。

服务器端密文的加密方式与客户端密文类似,不再赘述。如上文所述可知,加密和解密所采用的密钥是配对的。如果服务器端对SDK的授权密码进行加密时,使用的是客户端的公钥和服务器端的私钥,则在客户端对服务器端密文进行解密时,可以使用客户端的私钥和服务器端的公钥进行解密。使用两对配对的密钥进行加密解密的方式的安全性更高,并且加密和解密比较方便快捷。

根据本发明实施例,反馈信息可以包括软件开发工具包的授权密码和授权验证信息,方法200还可以包括:根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在一个示例中,服务器端可以仅向客户端返回SDK的授权密码,客户端可以直接基于SDK的授权密码使用SDK的功能。在另一示例中,除SDK的授权密码之外,服务器端还可以向客户端返回额外的授权验证信息。客户端接收到授权验证信息后,可以根据授权验证信息判断其是否能够基于SDK的授权密码使用SDK的功能,如果是,则客户端可以正常使用SDK的功能,如果否,则客户端不能使用SDK的功能。由于恶意攻击者有可能模仿服务器端向客户端发送授权密码,因此基于授权验证信息可以验证客户端接收到的授权密码是否是与自身SDK对应的期望授权密码,这样可以防止恶意攻击者的攻击。此外,出于诸如经济等方面的考虑,可以对客户端使用SDK进行一些限制,这种限制也可以通过授权验证信息实现。

根据本发明实施例,授权验证信息可以包括由服务器端计算获得的、客户端信息的服务器端哈希值,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能可以包括:计算客户端信息的客户端哈希值;将服务器端哈希值与客户端哈希值进行对比;以及如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

服务器端可以计算客户端信息的哈希(hash)值,获得服务器端哈希值。客户端也可以计算客户端信息的哈希值,获得客户端哈希值。客户端可以将接收到的服务器端哈希值与自身计算获得的客户端哈希值进行对比,若二者一致,则可以认为所接收到的授权密码为与自身SDK对应的期望授权密码,客户端可以基于该授权密码使用SDK的功能。若服务器端哈希值和客户端哈希值不一致,则客户端不能基于接收到的授权密码使用SDK的功能。

可以理解的是,客户端信息的哈希值可以代表客户端信息本身,如果哈希值一致,说明信息一致,这样方便信息的比较。如上文所述,恶意攻击者有可能模仿服务器端向客户端发送授权密码。通过哈希值的比较,客户端可以确定其所接收到的授权密码是否是与客户端期望获得授权的SDK对应的授权密码,因此,对于恶意攻击者发送的授权密码,客户端可以不予采用,从而可以防止恶意攻击者的攻击。

根据本发明实施例,授权验证信息可以包括软件开发工具包的过期时间,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能可以包括:将客户端的当前系统时间与过期时间进行对比;如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在客户端一侧,除通过哈希值确定其是否能够基于授权密码使用SDK的功能之外,还可以基于其他因素确定客户端是否能够基于授权密码使用SDK的功能。例如,可以根据SDK的授权限制条件来确定客户端是否能够基于授权密码使用SDK的功能。示例性地,SDK的授权限制条件包括SDK的过期时间和/或SDK的授权限制次数。

在SDK的授权限制条件包括SDK的过期时间的情况下,将客户端的当前系统时间与SDK的过期时间进行对比,如果客户端的当前系统时间在SDK的过期时间之前,则确定客户端能够基于授权密码使用SDK的功能,否则确定客户端不能基于授权密码使用SDK的功能。

根据本发明实施例,授权验证信息可以包括软件开发工具包的授权限制次数,根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能可以包括:将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比;如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在SDK的授权限制条件包括SDK的授权限制次数的情况下,将SDK在客户端上的已授权次数与SDK的授权限制次数进行对比,如果SDK在客户端上的已授权次数小于或等于SDK的授权限制次数,则确定客户端能够基于授权密码使用SDK的功能,否则确定客户端不能基于授权密码使用SDK的功能。

上述服务器端哈希值和客户端哈希值的对比操作、客户端的当前系统时间与SDK的过期时间的对比操作、和SDK在客户端上的已授权次数与SDK的授权限制次数的对比操作这三个操作中的任一操作可以单独实施,或者其中的任意多个操作可以同时实施,根据获得的一个或多个对比结果确定客户端是否能够基于授权密码使用SDK的功能。例如,如果服务器端哈希值与客户端哈希值一致并且客户端的当前系统时间在SDK的过期时间之前,则确定客户端能够基于SDK的授权密码使用SDK的功能,否则确定客户端不能基于SDK的授权密码使用SDK的功能。

在客户端将客户端信息发送到服务器端之后,服务器端会对客户端信息进行处理并向客户端返回反馈信息。下面描述根据本发明另一方面的用于服务器端的信息处理方法。

根据本发明另一方面,提供一种信息处理方法。图3示出根据本发明一个实施例的信息处理方法300的示意性流程图。如图3所示,信息处理方法300包括以下步骤。

在步骤S310,接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息。

与SDK相关的客户端信息、SDK的环境信息的形式和内容已在上文进行过描述,此处不再赘述。客户端和服务器端可以相互通信,因此客户端将客户端信息发送到服务器端,服务器端可以基于已知通信协议接收客户端信息。

在步骤S320,基于客户端信息生成与软件开发工具包的授权相关的反馈信息。

反馈信息的形式和内容已在上文进行过描述,此处不再赘述。

在步骤S330,将反馈信息发送到客户端。

生成反馈信息之后,将反馈信息发送到客户端。如果反馈信息包括SDK的授权密码,则客户端可以根据SDK的授权密码使用SDK的功能。如果反馈信息包括乱码信息和/或警告信息等信息,而不包括SDK的授权密码,则客户端将无法获得SDK的授权。

根据本发明实施例的信息处理方法,服务器端基于客户端发送的客户端信息来确定是否向客户端提供SDK的授权,这样,使得在客户端处SDK的获取与SDK的授权分开进行,可以提高SDK的授权安全性。

根据本发明实施例,步骤S320可以包括:基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码;如果搜索到匹配的授权密码,则生成反馈信息,其中,反馈信息包括所搜索到的授权密码;否则,生成乱码信息和/或警告信息作为反馈信息。

授权密码可以存储在服务器端的数据库中。数据库可以存储若干已知的环境信息与对应的SDK授权密码。服务器端可以基于接收到的SDK的类型、SDK的版本号、SDK的应用平台等环境信息确定唯一对应的SDK授权密码。

服务器端接收到客户端发送的客户端信息之后,基于其中的环境信息从数据库中搜索授权密码。如果搜索到,则可以将所搜索到的授权密码返回给客户端。如果没有搜索到,说明服务器端没有存储客户端期望获得授权的SDK的相关信息,服务器端无法向客户端授权,因此可以向客户端返回乱码信息和/或警告信息等信息,以告知客户端该SDK无法获得授权。

根据本发明实施例,客户端信息还包括软件开发工具包所对应的特定应用的标识符,在基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码之前,方法300还可以包括:基于特定应用的标识符在预存表单中进行查询操作,预存表单用于存储授权应用的已知标识符;如果查询到与特定应用的标识符一致的已知标识符,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

在客户端信息包括SDK所对应的bundleID时,可以基于客户端信息中的bundledID从预存表单中进行查询。预存表单用于存储若干授权应用的已知bundleID。如果查询到结果,说明客户端请求获得授权的SDK所对应的应用是授权应用,即客户端是可授权用户,这样,可以为客户端搜索其所需的SDK授权密码。如果没有查询到任何结果,说明客户端请求获得授权的SDK所对应的应用不是授权应用,则没有必要为客户端搜索所需的SDK授权密码,可以直接向其返回乱码信息和/或警告信息等。考虑到经济等方面的因素,服务器端可以限制客户端能够获得SDK授权的应用的类型,仅针对服务器端认可的应用提供SDK授权。

根据本发明实施例,客户端信息还可以包括客户端的当前系统时间,在基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码之前,方法300还可以包括:将客户端的当前系统时间与服务器端的当前系统时间进行对比;如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

除应用的标识符以外,服务器端还可以基于客户端与服务器端的时间差判断客户端是否是可授权用户。所述预设阈值可以是任何合适的值。例如,假设预设阈值是两年,并且服务器端的当前系统时间是2016年12月1日20:00,如果客户端的当前系统时间是2015年11月1日20:00,则客户端是可授权用户,如果客户端的当前系统时间是2014年11月1日20:00,则客户端不是可授权用户。可以理解的是,考虑客户端与服务器端的时间差时,可以仅考虑该时间差的绝对值,即不考虑客户端与服务器端的当前系统时间的先后关系。当然,也可以考虑客户端与服务器端的当前系统时间的先后关系。例如,如果客户端的当前系统时间在服务器端的当前系统时间之后,则不论二者时间差是多少,均认为客户端不是可授权用户。如上文所述,根据时间来限制客户端的SDK授权,可以在一定程度上防止重放攻击。

根据本发明实施例,反馈信息可以包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在上文关于信息处理方法200的描述中,已经描述了授权验证信息的内容和作用,在此不再赘述。

根据本发明实施例,授权验证信息可以包括客户端信息的服务器端哈希值,步骤S320可以包括:计算服务器端哈希值作为反馈信息的一部分。

在服务器端,可以利用哈希算法计算客户端信息的服务器端哈希值。在上文关于信息处理方法200的描述中,已经描述了客户端信息的服务器端哈希值的作用,在此不再赘述。

根据本发明实施例,授权验证信息可以包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

在上文关于信息处理方法200的描述中,已经描述了软件开发工具包的过期时间和软件开发工具包的授权限制次数的作用,在此不再赘述。

示例性地,在将SDK的授权密码和SDK的授权验证信息发送到客户端之前,可以将SDK的授权密码和SDK的授权验证信息进行加密,形成服务器端密文。示例性地,还可以进一步对服务器端密文进行编码,例如Base64编码。将加密和/或编码之后形成的反馈信息发送到客户端。

根据本发明实施例,步骤S310可以包括:接收客户端发送的客户端密文,客户端密文包括客户端信息;在步骤S320之前,方法300还可以包括:对客户端密文进行解密,以获得客户端信息。

可以理解,如果客户端对客户端信息进行加密之后将其发送到服务器端,则服务器端可通过对接收到的客户端密文进行解密来获得所需的客户端信息。

根据本发明实施例,客户端密文由客户端利用服务器端的公钥和客户端的私钥加密获得并且客户端密文的头部包括客户端的公钥,对客户端密文进行解密,以获得客户端信息包括:从客户端密文的头部获取客户端的公钥;以及利用服务器端的私钥和客户端的公钥对客户端密文进行解密,以获得客户端信息。

在上文关于信息处理方法200的描述中,已经描述了服务器端的公钥、服务器端的私钥、客户端的公钥和客户端的私钥的获取方式和应用方式,此处不再赘述。可以理解,如果客户端在对客户端信息进行加密时,使用了服务器端的公钥和客户端的私钥进行加密,则服务器端可以使用配对的密钥(即服务器端的私钥和客户端的公钥)进行解密。服务器端的私钥存储在服务器端的存储器中,客户端的公钥可以从客户端密文的头部获得。

根据本发明另一方面,提供一种用于信息处理的客户端。图4示出了根据本发明一个实施例的用于信息处理的客户端400的示意性框图。

如图4所示,根据本发明实施例的客户端400包括工具包获取模块410、客户端信息获取模块420和发送模块430。所述各个模块可分别执行上文中结合图2描述的信息处理方法的各个步骤/功能。以下仅对该客户端400的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。

工具包获取模块410用于获取软件开发工具包。工具包获取模块410可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

客户端信息获取模块420用于获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息。客户端信息获取模块420可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

发送模块430用于将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。发送模块430可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

根据本发明实施例,客户端信息还包括软件开发工具包所对应的特定应用的标识符,特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。

根据本发明实施例,客户端信息还包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。

根据本发明实施例,环境信息包括以下项中的一项或多项:客户端获取软件开发工具包的系统时间、软件开发工具包的类型、软件开发工具包的版本号和软件开发工具包的应用平台。

根据本发明实施例,客户端信息获取模块420包括:初始信息获取子模块,用于获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及综合子模块,用于对初始信息进行综合,以获得客户端信息。

根据本发明实施例,客户端400还包括:加密模块(未示出),用于对客户端信息进行加密,以获得包括客户端信息的客户端密文;发送模块430包括:发送子模块,用于将客户端密文发送到服务器端。

根据本发明实施例,加密模块包括:公钥提取子模块,用于从软件开发工具包中提取服务器端的公钥;私钥生成子模块,用于随机生成客户端的私钥;加密子模块,用于利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及公钥添加子模块,用于将客户端的公钥添加到初始密文的头部,以获得客户端密文。

根据本发明实施例,客户端400还包括:接收模块(未示出),用于接收服务器端发送的反馈信息。

根据本发明实施例,反馈信息包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,客户端400还包括:解密模块(未示出),用于对服务器端密文进行解密,以获得授权密码。

根据本发明实施例,反馈信息包括软件开发工具包的授权密码和授权验证信息,客户端400还包括:功能使用确定模块(未示出),用于根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

根据本发明实施例,授权验证信息包括由服务器端计算获得的、客户端信息的服务器端哈希值,功能使用确定模块包括:哈希值计算子模块,用于计算客户端信息的客户端哈希值;哈希值对比子模块,用于将服务器端哈希值与客户端哈希值进行对比,如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

根据本发明实施例,授权验证信息包括软件开发工具包的过期时间,功能使用确定模块包括:时间对比子模块,用于将客户端的当前系统时间与过期时间进行对比,如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

根据本发明实施例,授权验证信息包括软件开发工具包的授权限制次数,功能使用确定模块包括:次数对比子模块,用于将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比,如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

根据本发明另一方面,提供一种用于信息处理的服务器端。图5示出了根据本发明一个实施例的用于信息处理的服务器端500的示意性框图。

如图5所示,根据本发明实施例的服务器端500包括接收模块510、反馈信息生成模块520和发送模块530。所述各个模块可分别执行上文中结合图3描述的信息处理方法的各个步骤/功能。以下仅对该服务器端500的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。

接收模块510用于接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息。接收模块510可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

反馈信息生成模块520用于基于所述客户端信息生成与软件开发工具包的授权相关的反馈信息。反馈信息生成模块520可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

发送模块530用于将反馈信息发送到客户端。发送模块530可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

根据本发明实施例,反馈信息生成模块520包括搜索子模块、第一生成子模块和第二生成子模块,其中,搜索子模块用于基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码,如果搜索到匹配的授权密码,则启动第一生成子模块,否则启动第二生成子模块;第一生成子模块用于生成反馈信息,其中,反馈信息包括所搜索到的授权密码;第二生成子模块用于生成乱码信息和/或警告信息作为反馈信息。

根据本发明实施例,客户端信息还包括软件开发工具包所对应的特定应用的标识符,服务器端500还包括查询模块、可授权确定模块和不可授权确定模块(未示出),其中,查询模块用于基于特定应用的标识符在预存表单中进行查询操作,如果查询到与特定应用的标识符一致的已知标识符,则启动可授权确定模块,否则启动不可授权确定模块,其中,预存表单用于存储授权应用的已知标识符;可授权确定模块用于确定客户端是可授权用户并启动搜索子模块;不可授权确定模块用于确定客户端不是可授权用户并启动第二生成子模块以生成乱码信息和/或警告信息作为反馈信息。

根据本发明实施例,客户端信息还包括客户端的当前系统时间,服务器端500还包括时间对比模块、可授权确定模块和不可授权确定模块(未示出),其中,时间对比模块用于将客户端的当前系统时间与服务器端的当前系统时间进行对比,如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则启动可授权确定模块,否则启动不可授权确定模块;可授权确定模块用于确定客户端是可授权用户并启动搜索子模块;不可授权确定模块用于确定客户端不是可授权用户并启动第二生成子模块以生成乱码信息和/或警告信息作为反馈信息。

根据本发明实施例,反馈信息包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

根据本发明实施例,授权验证信息包括客户端信息的服务器端哈希值,反馈信息生成模块520包括:计算子模块,用于计算服务器端哈希值作为反馈信息的一部分。

根据本发明实施例,授权验证信息包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

图6示出了根据本发明一个实施例的信息处理系统600的示意性框图。信息处理系统600包括数据获取装置610、存储装置620、以及处理器630。

信息处理系统600可以用于实现上述信息处理方法200或者信息处理方法300。下面首先描述信息处理系统600用于实现信息处理方法200的实施例。

数据获取装置610用于获取软件开发工具包。

所述存储装置620存储用于实现根据本发明实施例的信息处理方法200中的相应步骤的程序代码。

所述处理器630用于运行所述存储装置620中存储的程序代码,以执行根据本发明实施例的信息处理方法200的相应步骤,并且用于实现根据本发明实施例的客户端400中的工具包获取模块410、客户端信息获取模块420和发送模块430。

在一个实施例中,所述程序代码被所述处理器630运行时使所述信息处理系统600执行以下步骤:获取软件开发工具包;获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息;以及将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。

在一个实施例中,客户端信息还包括软件开发工具包所对应的特定应用的标识符,特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。

在一个实施例中,客户端信息还包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。

在一个实施例中,环境信息包括以下项中的一项或多项:客户端获取软件开发工具包的系统时间、软件开发工具包的类型、软件开发工具包的版本号和软件开发工具包的应用平台。

在一个实施例中,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的获取与软件开发工具包相关的客户端信息的步骤包括:获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及对初始信息进行综合,以获得客户端信息。

在一个实施例中,在所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的将客户端信息发送到服务器端的步骤之前,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:对客户端信息进行加密,以获得包括客户端信息的客户端密文;所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的将客户端信息发送到服务器端的步骤包括:将客户端密文发送到服务器端。

在一个实施例中,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的对客户端信息进行加密,以获得包括客户端信息的客户端密文的步骤包括:从软件开发工具包中提取服务器端的公钥;随机生成客户端的私钥;利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及将客户端的公钥添加到初始密文的头部,以获得客户端密文。

在一个实施例中,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:接收服务器端发送的反馈信息。

在一个实施例中,反馈信息包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,在所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的接收服务器端发送的反馈信息的步骤之后,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:对服务器端密文进行解密,以获得授权密码。

在一个实施例中,反馈信息包括软件开发工具包的授权密码和授权验证信息,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括由服务器端计算获得的、客户端信息的服务器端哈希值,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:计算客户端信息的客户端哈希值;将服务器端哈希值与客户端哈希值进行对比;以及如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括软件开发工具包的过期时间,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:将客户端的当前系统时间与过期时间进行对比;如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括软件开发工具包的授权限制次数,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比;如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

下面描述信息处理系统600用于实现信息处理方法300的实施例。

数据获取装置610用于接收客户端信息。

所述存储装置620存储用于实现根据本发明实施例的信息处理方法300中的相应步骤的程序代码。

所述处理器630用于运行所述存储装置620中存储的程序代码,以执行根据本发明实施例的信息处理方法300的相应步骤,并且用于实现根据本发明实施例的服务器端500中的接收模块510、反馈信息生成模块520和发送模块530。

在一个实施例中,所述程序代码被所述处理器630运行时使所述信息处理系统600执行以下步骤:接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息;基于客户端信息生成与软件开发工具包的授权相关的反馈信息;以及将反馈信息发送到客户端。

在一个实施例中,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的基于客户端信息生成与软件开发工具包的授权相关的反馈信息的步骤包括:基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码;如果搜索到匹配的授权密码,则生成反馈信息,其中,反馈信息包括所搜索到的授权密码;否则,生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,客户端信息还包括软件开发工具包所对应的特定应用的标识符,在所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤之前,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:基于特定应用的标识符在预存表单中进行查询操作,预存表单用于存储授权应用的已知标识符;如果查询到与特定应用的标识符一致的已知标识符,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,客户端信息还包括客户端的当前系统时间,在所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤之前,所述程序代码被所述处理器630运行时还使所述信息处理系统600执行:将客户端的当前系统时间与服务器端的当前系统时间进行对比;如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,反馈信息包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括客户端信息的服务器端哈希值,所述程序代码被所述处理器630运行时使所述信息处理系统600所执行的基于客户端信息生成与软件开发工具包的授权相关的反馈信息的步骤包括:计算服务器端哈希值作为反馈信息的一部分。

在一个实施例中,授权验证信息包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的信息处理方法200或信息处理方法300的相应步骤,并且用于实现根据本发明实施例的用于信息处理的客户端400或用于信息处理的服务器端500中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。

下面描述所述程序指令被计算机或处理器运行时用于执行上述信息处理方法200的实施例。

在一个实施例中,所述计算机程序指令在被计算机或处理器运行时可以使得计算机或处理器实现根据本发明实施例的用于信息处理的客户端400的各个功能模块,并且/或者可以执行根据本发明实施例的信息处理方法200。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机执行以下步骤:获取软件开发工具包;获取与软件开发工具包相关的客户端信息,客户端信息包括软件开发工具包的环境信息;以及将客户端信息发送到服务器端,客户端信息用于由服务器端基于其向客户端返回与开发工具包的授权相关的反馈信息。

在一个实施例中,客户端信息还包括软件开发工具包所对应的特定应用的标识符,特定应用的标识符用于由服务器端基于其确定客户端是否是可授权用户。

在一个实施例中,客户端信息还包括客户端的当前系统时间,客户端的当前系统时间用于由服务器端基于其确定客户端是否是可授权用户。

在一个实施例中,环境信息包括以下项中的一项或多项:客户端获取软件开发工具包的系统时间、软件开发工具包的类型、软件开发工具包的版本号和软件开发工具包的应用平台。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的获取与软件开发工具包相关的客户端信息的步骤包括:获取与软件开发工具包相关的初始信息,初始信息包括环境信息;以及对初始信息进行综合,以获得客户端信息。

在一个实施例中,在所述计算机程序指令在被计算机运行时使所述计算机所执行的将客户端信息发送到服务器端的步骤之前,所述计算机程序指令在被计算机运行时还使所述计算机执行:对客户端信息进行加密,以获得包括客户端信息的客户端密文;所述计算机程序指令在被计算机运行时使所述计算机所执行的将客户端信息发送到服务器端的步骤包括:将客户端密文发送到服务器端。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的对客户端信息进行加密,以获得包括客户端信息的客户端密文的步骤包括:从软件开发工具包中提取服务器端的公钥;随机生成客户端的私钥;利用服务器端的公钥和客户端的私钥对客户端信息进行加密,以获得初始密文;以及将客户端的公钥添加到初始密文的头部,以获得客户端密文。

在一个实施例中,所述计算机程序指令在被计算机运行时还使所述计算机执行:接收服务器端发送的反馈信息。

在一个实施例中,反馈信息包括服务器端密文,服务器端密文包括软件开发工具包的授权密码,在所述计算机程序指令在被计算机运行时使所述计算机所执行的接收服务器端发送的反馈信息的步骤之后,所述计算机程序指令在被计算机运行时还使所述计算机执行:对服务器端密文进行解密,以获得授权密码。

在一个实施例中,反馈信息包括软件开发工具包的授权密码和授权验证信息,所述计算机程序指令在被计算机运行时还使所述计算机执行:根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括由服务器端计算获得的、客户端信息的服务器端哈希值,所述计算机程序指令在被计算机运行时使所述计算机所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:计算客户端信息的客户端哈希值;将服务器端哈希值与客户端哈希值进行对比;以及如果服务器端哈希值与客户端哈希值一致,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括软件开发工具包的过期时间,所述计算机程序指令在被计算机运行时使所述计算机所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:将客户端的当前系统时间与过期时间进行对比;如果客户端的当前系统时间在过期时间之前,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括软件开发工具包的授权限制次数,所述计算机程序指令在被计算机运行时使所述计算机所执行的根据授权验证信息确定客户端是否能够基于授权密码使用软件开发工具包的功能的步骤包括:将软件开发工具包在客户端上的已授权次数与授权限制次数进行对比;如果软件开发工具包在客户端上的已授权次数小于或等于授权限制次数,则确定客户端能够基于授权密码使用软件开发工具包的功能,否则确定客户端不能基于授权密码使用软件开发工具包的功能。

下面描述所述程序指令被计算机或处理器运行时用于执行上述信息处理方法300的实施例。

在一个实施例中,所述计算机程序指令在被计算机或处理器运行时可以使得计算机或处理器实现根据本发明实施例的用于信息处理的服务器端500的各个功能模块,并且/或者可以执行根据本发明实施例的信息处理方法300。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机执行以下步骤:接收客户端发送的、与软件开发工具包相关的客户端信息,其中,客户端信息包括软件开发工具包的环境信息;基于客户端信息生成与软件开发工具包的授权相关的反馈信息;以及将反馈信息发送到客户端。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的基于客户端信息生成与软件开发工具包的授权相关的反馈信息的步骤包括:基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码;如果搜索到匹配的授权密码,则生成反馈信息,其中,反馈信息包括所搜索到的授权密码;否则,生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,客户端信息还包括软件开发工具包所对应的特定应用的标识符,在所述计算机程序指令在被计算机运行时使所述计算机所执行的基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤之前,所述计算机程序指令在被计算机运行时还使所述计算机执行:基于特定应用的标识符在预存表单中进行查询操作,预存表单用于存储授权应用的已知标识符;如果查询到与特定应用的标识符一致的已知标识符,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,客户端信息还包括客户端的当前系统时间,在所述计算机程序指令在被计算机运行时使所述计算机所执行的基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤之前,所述计算机程序指令在被计算机运行时还使所述计算机执行:将客户端的当前系统时间与服务器端的当前系统时间进行对比;如果客户端的当前系统时间与服务器端的当前系统时间之间的差值小于或等于预设阈值,则确定客户端是可授权用户并开始执行基于环境信息从服务器端的数据库中搜索与环境信息匹配的授权密码的步骤;否则,确定客户端不是可授权用户并生成乱码信息和/或警告信息作为反馈信息。

在一个实施例中,反馈信息包括软件开发工具包的授权密码和授权验证信息,授权验证信息用于由客户端基于其确定客户端是否能够基于授权密码使用软件开发工具包的功能。

在一个实施例中,授权验证信息包括客户端信息的服务器端哈希值,所述计算机程序指令在被计算机运行时使所述计算机所执行的基于客户端信息生成与软件开发工具包的授权相关的反馈信息的步骤包括:计算服务器端哈希值作为反馈信息的一部分。

在一个实施例中,授权验证信息包括软件开发工具包的过期时间和/或软件开发工具包的授权限制次数。

根据本发明实施例的信息处理方法、用于信息处理的客户端和用于信息处理的服务器端,客户端首先获取SDK的本体,随后再从服务器端请求获得SDK的授权,也就是说,由服务器端控制SDK在客户端上的授权。与现有的SDK授权方式相比,上述方式的授权安全性更高。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

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

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

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

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

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

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

以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

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