消息传输方法、服务器及客户端
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种消息传输方法、服务器及客户端。
背景技术
重放攻击(Replay Attack)是一种常见的网络攻击方法。攻击者首先截获通信双方在某次交互过程中由其中一方发送的数据包,并在以后某个合适的时机向该数据包的接收端重新发送所截获的数据包,如果在所述数据包中没有包含足够的信息使接收端能够判断出该数据包是第一次发送的数据包还是重发的数据包,攻击者就能够冒充通信双方中的一方来欺骗另一方,以达到攻击系统的目的。
目前用于防止重放攻击的策略主要包括:基于随机数的防重放策略、基于时间戳的防重放策略和基于流水号的防重放策略。其中,基于随机数的防重放策略中,客户端产生随机数,作为请求报文的一个字段传输给服务器,服务器如果检测到报文中有以前使用过的随机数,就认为是重放攻击,加以阻拦,该策略需要缓存随机数,随着数量的增加,会不断增加缓存开销,并降低检索速度,无法有效防止重放攻击。基于时间戳的防重放策略中,客户端与服务器时间同步,客户端每次请求时在报文中携带时间戳,服务器对比该时间戳和本地时间,判断是否在合理范围内,从而达到防止重放攻击的目的,该策略难以做到精准的时间同步,且如果重放攻击在合理的时间范围内,将无法防护。基于流水号的防重放策略中,客户端与服务器协商一个初始整数作为初始流水号,客户端在请求时逐步递增该流水号,接收端通过判断流水号的连续性,确定是否有重放攻击,该策略在出现网络异常时,无法有效防止重放攻击。
发明内容
本发明实施例提供一种消息传输方法、服务器及客户端,用于防止重放攻击,提高通信安全。
第一方面,本发明实施例提供一种消息传输方法,应用于服务器,包括:
接收经过加密处理的消息,消息包括客户端的标识信息;
根据客户端的标识信息,生成与客户端对应的密钥,密钥为一次一密密钥;
根据密钥,对经过加密处理的消息进行解密处理;
若解密失败,则丢弃该消息。
在一种可能的实现方式中,根据客户端的标识信息,生成与客户端对应的密钥,包括:
根据客户端的标识信息,获取客户端对应的种子密钥以及消息交互次数;
根据种子密钥以及消息交互次数,生成与客户端对应的密钥。
在一种可能的实现方式中,根据种子密钥以及消息交互次数,生成所与客户端对应的密钥,包括:
根据预设规则,更新消息交互次数;
根据种子密钥以及更新后的消息交互次数,生成与客户端对应的密钥。
在一种可能的实现方式中,预设规则包括:消息交互次数加上预设值。
在一种可能的实现方式中,方法还包括:
通过与客户端进行密钥交换,获得共享密钥;
根据共享密钥,获得种子密钥。
在一种可能的实现方式中,方法还包括:
根据共享密钥,确定消息交互次数的初始值。
在一种可能的实现方式中,通过与客户端进行密钥交换,获得共享密钥,包括:
接收客户端发送的握手请求消息,握手请求消息包括客户端的公钥;
根据客户端的公钥和服务器的私钥,确定共享密钥。
在一种可能的实现方式中,根据密钥,对经过加密处理的消息进行解密处理,包括:
根据密钥,采用预设的对称加密算法对经过加密处理的消息进行解密处理。
第二方面,本发明实施例提供一种消息传输方法,应用于客户端,包括:
根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,密钥为一次一密密钥;
根据密钥,对待传输的消息进行加密处理;
向服务器发送经过加密处理的消息,消息包括客户端的标识信息。
在一种可能的实现方式中,根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,包括:
根据预设规则,更新消息交互次数;
根据种子密钥以及更新后的消息交互次数,生成客户端的密钥。
在一种可能的实现方式中,预设规则包括:消息交互次数加上预设值。
在一种可能的实现方式中,方法还包括:
通过与服务器进行密钥交换,获得共享密钥;
根据共享密钥,获得种子密钥。
在一种可能的实现方式中,方法还包括:
根据共享密钥,确定消息交互次数的初始值。
在一种可能的实现方式中,通过与服务器进行密钥交换,获得共享密钥,包括:
向服务器发送握手请求消息,握手请求消息包括客户端的公钥;
根据客户端的私钥和服务器的公钥,确定共享密钥。
在一种可能的实现方式中,根据密钥,对待传输的消息进行加密处理,包括:
根据密钥,采用预设的对称加密算法对待传输的消息进行加密处理。
第三方面,本发明实施例提供一种服务器,包括:
接收模块,用于接收经过加密处理的消息,消息包括客户端的标识信息;
生成模块,用于根据客户端的标识信息,生成与客户端对应的密钥,密钥为一次一密密钥;
解密模块,用于根据密钥,对经过加密处理的消息进行解密处理;
处理模块,用于若解密失败,则丢弃该消息。
第四方面,本发明实施例提供一种客户端,包括:
生成模块,用于根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,密钥为一次一密密钥;
加密模块,用于根据密钥,对待传输的消息进行加密处理;
发送模块,用于向服务器发送经过加密处理的消息,消息包括客户端的标识信息。
第五方面,本发明实施例提供一种服务器,包括:
至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的消息传输方法。
第六方面,本发明实施例提供一种终端设备,包括:
至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第二方面任一项所述的消息传输方法。
第七方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的消息传输方法或者如第二方面任一项所述的消息传输方法。
本发明实施例提供的消息传输方法、服务器及客户端,通过使用与客户端对应的一次一密密钥,对接收到的经过加密处理的消息进行解密,并丢弃解密失败的消息,有效防止了重放攻击,且消息的传输采用了一次一密密钥进行了加密处理,提高了通信的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明提供的消息传输方法一实施例的流程图;
图2为本发明提供的消息传输方法又一实施例的流程图;
图3为本发明提供的消息传输方法另一实施例的流程图;
图4为本发明提供的服务器一实施例的结构示意图;
图5为本发明提供的客户端一实施例的结构示意图;
图6为本发明提供的服务器又一实施例的结构示意图;
图7为本发明提供的终端设备一实施例的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明中的“第一”和“第二”只起标识作用,而不能理解为指示或暗示顺序关系、相对重要性或者隐含指明所指示的技术特征的数量。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明的说明书中通篇提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明提供的消息传输方法一实施例的流程图。本实施例提供的方法可以应用于服务器,如图1所示,本实施例的方法可以包括:
S101、接收经过加密处理的消息,消息包括客户端的标识信息。
本实施例中客户端的标识信息用于唯一标识客户端,以使服务器能够分辨所接收到的消息来自于哪个客户端。
S102、根据客户端的标识信息,生成与客户端对应的密钥,密钥为一次一密密钥。
一次一密密钥是一次性的,使用一次之后便会失效。若采用对称加密算法对消息进行加密处理,则服务器产生的一次一密密钥需要与客户端产生的一次一密密钥相同;若采用非对称加密算法对消息进行加密处理,则服务器产生的一次一密密钥与客户端产生的一次一密密钥构成一组非对称密钥。
可选的,密钥可以由加密机生成,也可以采用密钥算法生成。
本实施例中,服务器根据客户端的标识信息,生成与该客户端对应的一次一密密钥。
S103、根据密钥,对经过加密处理的消息进行解密处理。
本实施例中,服务器根据生成的一次一密密钥,采用与加密算法相对应的算法,对经过加密处理的消息进行解密处理。对于消息进行加密和解密的算法,可以预先在服务器与客户端之间进行协商,或者预先设定。
S104、若解密失败,则丢弃该消息。
由于一次一密密钥一次有效,使用一次后便失效了。当服务器第一次收到客户端发送的某条经过加密处理的消息时,使用生成的与客户端同步的一次一密密钥可以成功进行解密,获取信息。当重放攻击者再次将该消息发送给服务器,实施重放攻击时,服务器已经没有对应的密钥能够解密了。因此,对于解密失败的消息进行丢弃,可以有效防止重放攻击。
本实施例提供的消息传输方法,通过使用与客户端对应的一次一密密钥,对接收到的经过加密处理的消息进行解密,并丢弃解密失败的消息,有效防止了重放攻击,且消息的传输采用了一次一密密钥进行了加密处理,提高了通信的安全性。
在一些实施例中,根据客户端的标识信息,生成与客户端对应的密钥,可以包括:
根据客户端的标识信息,获取客户端对应的种子密钥以及消息交互次数。
根据种子密钥以及消息交互次数,生成与客户端对应的密钥。可以采用的一次一密算法例如可以为基于散列消息身份验证码(Hashed Message Authentication Code,HMAC)算法加密的一次性密码算法(HMAC-based One Time Password algorithm,HOTP)。
其中,根据种子密钥以及消息交互次数,生成所与客户端对应的密钥,可以包括:
根据预设规则,更新消息交互次数。预设规则可以包括:消息交互次数加上预设值
根据种子密钥以及更新后的消息交互次数,生成与客户端对应的密钥。
在一些实施例中,服务器通过与客户端进行密钥交换,获得共享密钥。根据密钥交换算法,在服务器和客户端之间可以生成相同的共享密钥。密钥交换算法例如可以采用基于椭圆曲线密码体制的密钥交换算法(Elliptic Curve Diffie-Hellman,ECDH)。通过密钥交换算法,获得共享密钥,避免了对共享密钥进行传输,提高了安全性。根据共享密钥,获得种子密钥。如可以根据共享密钥,采用消息摘要算法(Message Digest Algorithm,MD5),确定种子密钥。
可选的,还可以根据共享密钥,确定消息交互次数的初始值。
可选的,通过与客户端进行密钥交换,获得共享密钥,可以包括:
接收客户端发送的握手请求消息,握手请求消息包括客户端的公钥。
根据客户端的公钥和服务器的私钥,确定共享密钥。
可选的,根据密钥,对经过加密处理的消息进行解密处理,可以包括:根据密钥,采用预设的对称加密算法对经过加密处理的消息进行解密处理。如可以采用高级加密标准(Advanced Encryption Standard,AES)算法进行解密处理。
图2为本发明提供的消息传输方法又一实施例的流程图。本实施例提供的方法可以应用于客户端,如图2所示,本实施例的方法可以包括:
S201、根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,密钥为一次一密密钥。
本实施例中客户端根据自身的种子密钥以及消息交互次数,采用一次一密算法生成客户端的密钥。
S202、根据密钥,对待传输的消息进行加密处理。
本实施例中客户端根据生成的一次一密密钥,采用加密算法对待传输的消息进行加密处理。
S203、向服务器发送经过加密处理的消息,消息包括客户端的标识信息。
本实施例中客户端向服务器发送经过一次一密密钥加密处理的消息,该消息中还可以包括客户端的标识信息,以使服务器区分不同的客户端。
本实施例提供的消息传输方法,通过采用一次一密密钥对待传输的消息进行加密处理,并将加密处理后的消息发送给服务器,使得该消息只能被成功解密一次,有效防止了重放攻击,且消息通过加密传输,提高了通信的安全性。
在一些实施例中,根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,包括:
根据预设规则,更新消息交互次数。其中,预设规则可以包括:消息交互次数加上预设值。
根据种子密钥以及更新后的消息交互次数,生成客户端的密钥。可选的,采用HOTP算法,以种子密钥以及更新后的消息交互次数作为参数,生成客户端的一次一密密钥。
在一些实施例中,通过与服务器进行密钥交换,获得共享密钥。根据密钥交换算法进行密钥交换,在服务器和客户端中生成相同的共享密钥。通过密钥交换算法,获得共享密钥,避免了对共享密钥进行传输,提高了安全性。
可选的,客户端根据共享密钥,获得种子密钥。例如可以根据共享密钥,采用消息摘要算法(Message Digest Algorithm,MD5),确定种子密钥。
可选的,还可以根据共享密钥,确定消息交互次数的初始值。
在一种可能的实现方式中,通过与服务器进行密钥交换,获得共享密钥,包括:
向服务器发送握手请求消息,握手请求消息包括客户端的公钥;
根据客户端的私钥和服务器的公钥,确定共享密钥。
可选的,根据密钥,对待传输的消息进行加密处理,可以包括:根据密钥,采用预设的对称加密算法对待传输的消息进行加密处理。如采用AES算法对带传输的消息进行加密处理。
在上述实施例的基础上,本实施例对上述实施例进行结合,提供一个具体的实施例。图3为本发明提供的消息传输方法另一实施例的流程图。如图3所述,本实施例提供的方法可以包括:
S301、客户端根据服务器公钥生成客户端公钥和客户端私钥,根据服务器公钥和客户端私钥确定共享密钥。
预先根据密钥交换算法生成一对服务器公钥和服务器私钥,其中服务器私钥存储于服务器中,服务器公钥存储于客户端中。密钥交换算法例如可以采用ECDH算法。
客户端根据自身存储的服务器公钥,采用相应的密钥交换算法生成客户端公钥和客户端私钥。具体的可以以服务器公钥和客户端随机数作为参数,以确保每次生成的客户端公钥和客户端私钥都是不同的。
客户端采用相应的密钥交换算法,根据服务器公钥和客户端私钥便可以确定出共享密钥。
S302、客户端向服务器发送握手请求消息,握手请求消息包括客户端公钥和客户端标识。
为了使服务器生成与客户端对应的共享密钥,客户端将生成的客户端公钥通过握手请求消息发送给服务器。可以理解的,握手请求消息中还包括客户端标识,以使服务器能够准确判断请求来自哪个客户端。
可选的,为了进一步提高安全性,可以对客户端公钥进行加密处理。如可以采用非对称加密算法对客户端公钥进行加密处理。非对称加密算法例如可以采用RSA算法。
S303、服务器根据客户端公钥和服务器私钥,确定与客户端标识对应的共享密钥。
服务器采用预先约定的密钥交换算法,如ECDH算法,根据客户端公钥和服务器私钥,确定服务器侧的与该客户端标识对应的共享密钥。
需要说明的是,基于密钥交换的原理,服务器确定的共享密钥与客户端确定的共享密钥是相同的。通过密钥交换,服务器和客户端具有了相同的共享密钥,为后续的加密传输奠定了基础。
S304、客户端根据共享密钥,确定种子密钥和消息交互次数的初始值。
S305、服务器根据共享密钥,确定种子密钥和消息交互次数的初始值。
本实施例对于S304和S305的顺序不做限制。客户端和服务器采用相同的方法,确定种子密钥和消息交互次数的初始值。
可选的,客户端和服务器可以分别通过MD5算法,根据共享密钥生成种子密钥。可以将种子密钥预设位置上的值作为消息交互次数Num的初始值,如可以将种子密钥第128位的值作为消息交互次数的初始值。
S306、客户端根据种子密钥和消息交互次数,采用一次一密算法生成一次一密密钥。
一次一密算法例如可以采用HOTP算法,以种子密钥和消息交互次数作为参数。
其中,消息交互次数可以根据预设规则进行更新。例如,每次使用后,消息交互次数加上预设值,如加1。
S307、客户端采用生成的一次一密密钥,对待传输的消息进行加密处理。
客户端采用生成的一次一密密钥,根据预设的对称加密算法对待传输的消息进行加密处理。其中,对称加密算法例如可以采用高级加密标准(Advanced EncryptionStandard,AES)算法。
S308、客户端向服务器发送经过加密处理的消息,消息包括客户端标识。
客户端在对待传输的消息进行加密处理后,将经过加密处理的消息发送给服务器。
S309、服务器根据客户端标识,确定与客户端标识对应的种子密钥和消息交互次数。
服务器在接收到经过加密处理的消息后,首先根据消息中的客户端标识,确认该消息来自哪个客户端,确定与该客户端标识对应的种子密钥和消息交互次数。
S310、服务器根据种子密钥和消息交互次数,采用一次一密算法生成一次一密密钥。
服务器根据确定的与客户端标识对应的种子密钥和消息交互次数,采用一次一密算法生成一次一密密钥。需要说明的是,服务器所采用的一次一密算法与客户端采用的一次一密算法相同,例如可以采用HOTP算法。
S311、服务器采用生成的一次一密密钥,对接收到的经过加密处理的消息进行解密处理。
服务器在生成一次一密密钥后,采用该密钥,对接收到的经过加密处理的消息,采用预设算法进行解密处理,如采用AES算法进行解密处理。
S312、若解密失败,则丢弃该消息。
若解密失败,则服务器丢弃该消息。
由于一次一密密钥一次有效,使用一次后便失效了。当重放攻击者再次将该消息发送给服务器,实施重放攻击时,服务器已经没有对应的密钥能够解密了。因此,对于解密失败的消息进行丢弃,可以有效防止重放攻击。
可选的,若解密失败,服务器还可以向客户端标识对应的客户端发送指示消息,指示发生异常情况,以使客户端在接收到该指示消息后,重新向服务器发送握手请求消息。
可选的,在发生下述任一情形时,客户端和服务器重新进行密钥交换确定新的共享密钥:客户端重新启动时,客户端或者服务器发生异常情况,共享密钥的有效期到达时。
本实施例提供的消息传输方法,通过密钥交换确定共享密钥,采用一次一密密钥对待传输的消息进行加密处理,在解密失败时,丢弃接收到的消息,有效防止了重放攻击,且消息加密传输,提高了通信安全。
图4为本发明提供的服务器一实施例的结构示意图。如图4所示,本实施例提供的服务器40可以包括:接收模块401、生成模块402、解密模块403和处理模块404。
接收模块401,用于接收经过加密处理的消息,消息包括客户端的标识信息。
生成模块402,用于根据客户端的标识信息,生成与客户端对应的密钥,密钥为一次一密密钥。
解密模块403,用于根据密钥,对经过加密处理的消息进行解密处理。
处理模块404,用于若解密失败,则丢弃该消息。
本实施例提供的服务器,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明提供的客户端一实施例的结构示意图。如图5所示,本实施例提供的客户端50可以包括:生成模块501、加密模块502和发送模块503。
生成模块501,用于根据客户端的种子密钥以及消息交互次数,生成客户端的密钥,密钥为一次一密密钥。
加密模块502,用于根据密钥,对待传输的消息进行加密处理。
发送模块503,用于向服务器发送经过加密处理的消息,消息包括客户端的标识信息。
本实施例提供的客户端,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明提供的服务器又一实施例的结构示意图。如图6所示,本实施例提供的服务器60可以包括:
至少一个处理器601和存储器602。其中,至少一个处理器601和存储器602可以通过总线603连接。
存储器602存储计算机执行指令。
至少一个处理器601执行存储器602存储的计算机执行指令,使得至少一个处理器601执行上述任一实施例提供的可以应用于服务器的消息传输方法。
图7为本发明提供的终端设备一实施例的结构示意图。如图7所示,本实施例提供的终端设备70可以包括:
至少一个处理器701和存储器702。其中,至少一个处理器701和存储器702可以通过总线703连接。
存储器702存储计算机执行指令。
至少一个处理器701执行存储器702存储的计算机执行指令,使得至少一个处理器701执行上述任一实施例提供的可以应用于客户端的消息传输方法。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一方法实施例提供的消息传输方法。本实施例中的计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备,可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。
在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。