具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括服务器2000和用户终端集群。其中,用户终端集群具体可以包括一个或者多个用户终端,这里将不对用户终端集群中的用户终端的数量进行限制。如图1所示,多个用户终端具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n。其中,用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n可以分别与服务器2000通过有线或无线通信方式进行直接或间接地网络连接,以便于每个用户终端可以通过该网络连接与服务器2000之间进行数据交互。
其中,如图1所示的服务器2000可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在本申请实施例中,如图1所示的用户终端集群中的每个用户终端均可以安装有客户端,服务器2000可以用于作为后台服务端,用户终端上安装的客户端可直接与所述后台服务端进行数据通信和交互。其中,该客户端可以是安装在用户终端上的计算机应用程序(Application,APP),也可以是Web客户端,该Web客户端可指基于Web架构而开发的应用程序。为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、笔记本电脑等具有数据通信功能的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a作为目标用户终端。
目前,客户端可通过脚本语言(比如,JavaScript)访问后台服务器的数据接口以提交数据。但如果直接通过数据接口发送明文到服务器,又会存在以下安全隐患:一是在通信通道中的明文很容易被窃听者截获,安全性不高;二是攻击者通过分析客户端的脚本语言很容易就明白接口协议,进而进行接口数据篡改,通过网站服务进行欺诈、作弊等。因此,现有技术通常是使用加密技术,对接口进行加密签名处理,以在通过接口传递数据时,可以经过加密密钥将数据变为无意义的密文。
然而,发明人经过长期研究发现,加密签名使用的密钥无法安全保存在客户端处,很容易被破解,安全性不高。因此,发明人经过长期研究提出了一种数据加密方法、装置、物联网系统、电子设备及存储介质,由服务器动态确定密钥生成规则,客户端直接根据该规则生成密钥即可,从而做到密钥的组装无规率性,让非法攻击破解者无规律可循,保证了接口的安全性,客户端也无需保存密钥,提高了数据传输时的安全性。
请参阅图2,图2示出了本申请一个实施例提供的数据加密方法的流程示意图。数据加密方法可应用于服务端,在具体的实施例中,该数据加密方法可应用于如图16所示的数据加密装置800以及配置有所述数据加密装置800的电子设备(图18)。下面将针对图3所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S110:在接收到客户端发送的访问请求时,随机确定第一密钥生成规则。
在本申请实施例中,服务端在接收到客户端发送的访问请求时,可以随机确定第一密钥生成规则,以便根据第一密钥生成规则,来实现第一客户端与服务端之间的数据通信。
在本申请实施例中,第一密钥生成规则可以是用于生成加密传输数据的密钥的随机参数,可以是由随机字符和/或数字构成。其中,密钥是在加密处理与解密处理的算法中输入的一种参数。这样,由于服务器发送的密钥生成规则是随机参数,既可以使第一密钥生成规则变得复杂且难于理解,进而降低规则的可读性,且由于第一密钥生成规则是随机确定的,他人无法对规则进行修改和重新利用,从而达到保护密钥生成规则的目的。
其中,客户端可以为上述图1所示的用户终端上安装的客户端,其可以是浏览器(IE浏览器、UC浏览器、360浏览器及QQ浏览器等)、支付宝、微信或其它各种应用程序,服务端可以为该客户端的后台服务器,该后台服务器可以为上述图1所对应实施例中的服务器。在一些实施例中,电子设备上安装有客户端时,电子设备可以通过客户端界面向服务端发送访问请求。其中,访问请求可以是用于访问某个功能性服务时生成。从而客户端在检测到用户触发某个功能性服务对应的接口时,可以对应生成该接口的访问请求。例如,客户端为支付宝应用程序时,用户触发话费充值服务对应的接口时,可以生成相应的访问请求并发送至服务端。
可以理解的是,客户端通常可支持多种功能性服务,各个功能可通过程序代码实现,为了方便程序的维护,代码中设置有API(Application Programming Interface,应用程序编程接口),从而在需要实现某个功能性服务时,可以直接通过调用或请求相应的接口实现。
步骤S120:发送所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述加密数据向所述服务端发送。
在本申请实施例中,服务器在随机确定第一密钥生成规则后,可以将该第一密钥生成规则返回至客户端,以使客户端基于该第一密钥生成规则生成第一密钥,并根据第一密钥对待发送数据加密,得到加密数据,并将加密数据向服务端发送,从而实现数据的安全传输。其中,数据加密处理是使用密钥将数据从明文处理为密文的过程。
在本申请实施例中,待发送数据可以是需要进行加密的数据,其可以是数据通信过程中传输的关键数据,或是各类对安全性有较高要求的数据,比如,用户注册的数据、支付计费的数据、用户鉴权的数据等。在一些实施例中,待加密数据可以是电子设备在运行过程中产生的数据,也可以是从其他电子设备接收到的数据,本申请实施例这里不做限定。
具体地,在客户端访问服务端时,服务端可以在获取到客户端发送的访问请求之后,向客户端返回第一密钥生成规则,客户端可以根据该密钥生成规则生成第一密钥,对待发送数据进行加密处理,并向服务器发送加密后的加密数据。因此,当前端与后台在数据通信场景中需要进行加密数据通信时,服务端可以先在接收到客户端发送访问请求时,就将用于生成密钥的第一密钥生成规则返回至客户端,从而客户端在需要发送待加密的数据时,可以根据该第一密钥生成规则生成的第一密钥进行加密处理。从而客户端无需保留密钥,且服务端返回的第一密钥生成规则也是随机确定的,其也不具备可读性,提高了攻击者的破解门槛,保证了接口的安全性。
在一些实施例中,客户端发送访问请求的接口与发送加密数据的接口可以是同一接口,也就是说,当客户端需要对当前的接口进行加密传输时,可以先通过当前的接口发送访问请求至服务端,然后等待服务端返回第一密钥生成规则,在接收到服务端返回的第一密钥生成规则时,可以根据该第一密钥生成规则生成第一密钥,从而再利用该第一密钥对当前接口进行加密传输,从而保证了后续数据传输的安全性。
在一些实施例中,客户端发送访问请求的接口与发送加密数据的接口可以是不同接口,也就是说,当客户端需要对目标接口进行加密传输时,可以先通过其他接口发送访问请求至服务端,然后等待服务端返回第一密钥生成规则,在通过其他接口接收到服务端返回的第一密钥生成规则时,可以根据该第一密钥生成规则生成第一密钥,从而再利用该第一密钥对目标接口进行加密传输,从而保证了目标接口的数据传输安全性。
本申请实施例提供的数据加密方法,服务端在接收到客户端发送的访问请求时,随机确定第一密钥生成规则,并将该第一密钥生成规则发送至客户端,以使客户端用于基于该第一密钥生成规则生成第一密钥,并根据该第一密钥对待发送数据加密,得到加密数据,并将该加密数据向服务端发送。本方法由服务器动态确定密钥生成规则,以使客户端直接根据该规则生成密钥即可,客户端无需保存密钥,保证了密钥的安全性,提高了数据传输时的安全性。
请参阅图3,图3示出了本申请另一个实施例提供的数据加密方法的流程示意图。下面将针对图3所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S210:在接收到客户端发送的访问请求时,随机确定第一密钥生成规则,所述第一密钥生成规则包括标识信息。
在本申请实施例中,第一密钥生成规则可以包括标识信息,该标识信息可以用于唯一标识当前确定的第一密钥生成规则,从而后续可以通过该标识信息查找到这次访问所采用的第一密钥生成规则。具体地,服务端在随机确定出第一密钥生成规则时,可以给第一密钥生成规则对应确定标识信息。可选的,可以是在随机确定出第一密钥生成规则时,生成流水号作为标识信息,当然也可以是在接收到客户端发送的访问请求时,就生成访问请求的流水号作为第一密钥生成规则的标识信息。
在一些实施例中,客户端发送的访问请求可以是用于请求指定服务的非加密接口。其中,指定服务可以是客户端支持的多种服务中的任一种服务,也可以限定的某一种服务,此处不作限定。例如,可以是账号注册服务,话费充值服务,银行卡转账服务等。
一般地,在最终实现某个功能性服务之前,通常会进行一系列的操作,例如,在最终实现充值服务之前,需要先请求商品(SKU)列表接口以触发充值界面,以输入充值号码和金额,然后才会请求充值接口以进行下单充值。而商品(SKU)列表接口可以不用进行接口加密,而对于支付这种安全性要求高的接口就需要进行接口加密。因此,在本申请实施例中,可以是在客户端请求非加密接口时,服务器就随机确定第一密钥生成规则并返回至客户端,从而客户端后续在请求待加密接口时,可以根据第一密钥生成规则生成第一密钥,以对该待加密接口进行加密。
具体地,在本申请实施例中,指定服务可以包括非加密接口以及待加密接口。其中,非加密接口可以理解为无需进行数据加密传输的接口,可以是对信息安全性要求不高的接口,如商品列表(SKU)接口。待加密接口可以理解为需要进行数据加密传输的接口,可以是对信息安全性要求高的接口,如支付充值接口。在一些实施例中,上述访问请求可以具体是用于请求支付服务的商品列表接口,所述待加密接口包括充值接口。其中,支付服务可以是话费充值、银行转账、汇款等。
在本申请实施例中,非加密接口需要先于待加密接口请求,从而服务端在接收到客户端请求非加密接口时,就可以将第一密钥生成规则返回至客户端,进而客户端后续需要请求加密接口时,可以直接得到第一密钥生成规则进行第一密钥的生成,并基于该第一密钥实现对待加密接口的加密,以保证待加密接口的数据传输安全性。
步骤S220:发送所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述标识信息以及所述加密数据向所述服务端发送。
在本申请实施例中,服务端可以将携带有标识信息的第一密钥生成规则发送至客户端,以使客户端在接收到根据服务端返回的携带有标识信息的第一密钥生成规则后,可以根据第一密钥生成规则生成第一密钥,并根据第一密钥对待发送数据加密,得到加密数据,然后可以将采用的第一密钥生成规则对应的标识信息以及加密数据向服务端发送。从而服务端可以根据接收到标识信息,准确确定第一密钥生成规则,从而可以对加密数据进行解密。
在一些实施例中,若访问请求用于请求指定服务的非加密接口,指定服务又包括在非加密接口之后请求的待加密接口时,服务端可以发送该访问请求的响应报文以及第一密钥生成规则至客户端,以使客户端基于第一密钥生成规则生成第一密钥,并根据第一密钥对后续请求待加密接口的请求报文加密,得到加密数据,并将加密数据向服务端发送。可选的,第一密钥生成规则包括标识信息时,客户端可以将加密数据以及标识信息一起发送至服务端。
作为一种具体的实施方式,访问请求可以是用于请求支付服务的商品列表接口,待加密接口可以包括充值接口。从而服务端可以在接收到客户端发送的访问支付服务的商品列表接口的访问请求时,将支付服务的商品列表以及第一密钥生成规则一起返回至客户端,以使客户端基于商品列表进行充值前的一系列操作,如选择充值金额、输入充值账户等。当客户顿需要请求充值接口时,可以基于第一密钥生成规则生成第一密钥,并根据该第一密钥对充值接口的请求报文加密,得到加密数据,并将加密数据向服务端发送。从而实现了安全支付。
步骤S230:在接收到所述客户端发送的待确认的标识信息以及待确认的加密数据时,根据所述待确认的标识信息,确定对应的第二密钥生成规则。
在本申请实施例中,当客户端与服务端之间通信的数据进行加密时,服务端可以接收到客户端发送的待确认的标识信息以及待确认的加密数据。由于服务端下发的密钥生成规则是动态变化的,且与服务端通信的客户端通常是多个,如果不借助标识信息,服务端无法确定当前接收到的加密数据是采用的哪种密钥生成规则。因此,客户端在根据密钥生成规则生成密钥并加密后,有必要将密钥生成规则的标识信息与加密数据一起发送至服务端。从而服务端在接收到客户端发送的标识信息以及加密数据时,可以根据该标识信息,确定对应的密钥生成规则,以根据该密钥生成规则生成对应密钥,对加密数据解密。
具体地,服务端在接收到客户端发送的待确认的标识信息以及待确认的加密数据时,可以根据待确认的标识信息,确定待确认的加密数据加密时所采用的第二密钥生成规则。
步骤S240:基于所述第二密钥生成规则生成第二密钥。
在本申请实施例中,服务端在根据待确认的标识信息,确定对应的第二密钥生成规则后,可以基于第二密钥生成规则生成第二密钥。
可以理解的是,虽然本申请的密钥生成规则是由随机字符和/或数字构成的,但客户端开发者和服务端开发者可以在开发之初就约定好某些字符和/或数字的含义,从而后续服务端和客户端在获取到随机确定的密钥生成规则,可以按照约定好的含义,对第二密钥生成规则进行翻译,得到用于生成第二密钥的算法,并根据该算法生成第二密钥。
步骤S250:根据所述第二密钥对所述待确认的加密数据进行解密处理。
在本申请实施例中,在得到第二密钥后,可以根据该第二密钥对客户端发送的待确认的加密数据进行解密处理。其中,加密数据只要在输入相应的密钥之后才能从密文得到明文数据,从密文得到明文即为解密处理的过程。
在一些实施例中,由于存在黑产刷单的现象,可能有伪造的非法请求,因此,服务器在接收到客户端发送的标识信息和加密数据时,并不一定能成功解密。具体地,请参阅图4,步骤S250可以包括:
步骤S251:判断所述第二密钥是否成功解密所述待确认的加密数据。
步骤S252:若解密失败,则确定所述待确认的加密数据为异常数据。
在一些实施例中,由于本申请中的标识信息是用来唯一标识密钥生成规则的,当利用该密钥生成规则得到的密钥对数据加密后,理论上是可以利用该密钥对数据进行解密。因此,若密钥生成规则生成的第二密钥无法对加密数据进行解密,可以认为第二密钥有误,标识信息与密钥生成规则不对应,当前接收到的加密数据可能是异常数据或者非法数据。此时为了防止接口被非法分子利用,保证接口的安全性,可以对当前接收到的加密数据进行拦截。
同理,若密钥生成规则生成的第二密钥可以对加密数据进行解密,可以认为第二密钥正确,标识信息与密钥生成规则对应,当前接收到的加密数据是合法数据,服务端可以根据解密后的数据,进行后续的正常操作。
在一些实施例中,由于解密和加密是对应的,因此,在根据第二密钥解密加密数据时,需要根据第二密钥对数据进行加密时采用的加密算法进行解密。例如,若客户端使用第二密钥,对数据进行AES加密处理,则服务端在得到第二密钥后,也需要对加密数据进行AES解密处理。
本申请实施例提供的数据加密方法,服务端在接收到客户端发送的访问请求时,可以随机确定第一密钥生成规则,该第一密钥生成规则包括标识信息,然后服务端可以将该第一密钥生成规则发送至客户端,以使客户端用于基于该第一密钥生成规则生成第一密钥,并根据该第一密钥对待发送数据加密,得到加密数据,并将该加密数据以及前述的标识信息向服务端发送。然后服务端在接收到客户端发送的待确认的标识信息以及待确认的加密数据时,可以根据标识信息与密钥生成规则的对应关系,确定待确认的标识信息对应的第二密钥生成规则,从而服务器可基于该第二密钥生成规则生成第二密钥,并根据该第二密钥对待确认的加密数据进行解密处理。本方法由服务器动态确定密钥生成规则,以使客户端直接根据该规则生成密钥即可。同时由于密钥生成规则包括标识信息,从而服务器可以以标识信息为关联,在客户端返回加密数据以及标识信息时,能够利用标识信息,确定密钥生成规则并对应生成密钥进行解密。如此,密钥生成规则可以动态变化,做到密钥的组装无规率性,让非法攻击破解者无规律可循,保证了接口的安全性,提高了数据传输时的安全性,客户端也无需保存密钥。
请参阅5,图5示出了本申请又一个实施例提供的数据加密方法的流程示意图。下面将针对图5所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S310:在接收到客户端发送的访问请求时,随机确定第一密钥生成规则,所述第一密钥生成规则包括标识信息。
步骤S320:发送所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述标识信息以及所述加密数据向所述服务端发送。
步骤S330:在接收到所述客户端发送的待确认的标识信息以及待确认的加密数据时,根据所述待确认的标识信息,确定对应的第二密钥生成规则,所述第二密钥生成规则包括第二随机数、第二随机字符串以及第二随机加密算法。
在本申请实施例中,步骤S310~步骤S330可以参阅前述实施例的内容,此处不再赘述。
在本申请实施例中,密钥生成规则可以包括随机数、随机字符串以及随机加密算法。其中,随机数为设定数值范围内随机确定的数字,可以是一个,也可以是多个,此处不作限定。随机字符串可以是设定字符范围内随机确定的多个字符,具体个数并不作限定。随机加密算法为多种加密算法中随机确定的一种加密算法,多种加密算法可以AES、SHA-256、MD5等加密处理,此处并不作限定。从而,由于随机数、随机字符串、随机加密算法都是随机确定的,使得随机确定的密钥生成规则变得复杂、无规律且难于理解,降低了代码的可读性和可破解性。
具体地,服务端在接收到所述客户端发送的待确认的标识信息以及待确认的加密数据时,可以根据所述待确认的标识信息,确定对应的第二密钥生成规则,其中,第二密钥生成规则包括第二随机数、第二随机字符串以及第二随机加密算法。第二随机加密算法为多种加密算法中随机确定的一种加密算法。
在一些实施例中,随机加密算法可以是用某些特定的字符和/或数字表示,以提高破解的难度。可选的,可以用不同的数字代表不同的加密算法,从而服务端在随机确定出加密算法,可以用该加密算法对应的数值构成第二密钥生成规则。例如,1表示不做处理,2表示进行AES加密处理,3表示进行SHA-256处理,4表示进行MD5处理时,若服务端当前随机确定的随机加密算法为AES加密处理时,可以在第二密钥生成规则中用数字2表示AES加密处理。
此外,可以理解的是,若服务端仅接收到客户端发送的待确认的加密数据而无待确认的标识信息时,可以认为当前的加密数据为异常数据,可以进行拦截。又或者,虽然有待确认的标识信息,但服务端不存在标识信息与密钥生成规则的映射关系,也可以认为当前的加密数据为异常数据,可以进行拦截。由此,通过标识信息,以及标识信息与密钥生成规则的映射关系也可以实现异常信息的拦截,提升了接口的安全性。
步骤S340:基于所述第二随机加密算法,对所述第二随机数进行加密,得到第一字符串。
在本申请实施例中,在获取到待确认的标识信息对应的第二密钥生成规则后,可以根据第二密钥生成规则中的第二随机加密算法,对第二随机数进行加密,得到第一字符串。以根据该第一字符串生成第二密钥。
可以理解的是,本申请并不是简单地直接对随机数进行处理,来得到第二密钥,而是通过先根据第二随机加密算法,对第二随机数进行加密,以得到加密后的第一字符串,然后再根据该复杂度较高的第一字符串来生成第二密钥,提升了密钥生成过程中的复杂度,提升了密钥破解的门槛。
步骤S350:根据所述第一字符串以及所述第二随机字符串,生成第二密钥。
在本申请实施例中,在利用第二随机加密算法,对第二随机数进行加密,得到加密后的第一字符串,可以根据该第一字符串以及所述第二随机字符串,生成第二密钥。
在一些实施例中,可以是对字符串进行进一步地处理,来增加密钥生成的复杂度。具体地,请参阅图6,步骤S350可以包括:
步骤S351:对所述第一字符串进行数值转换,得到第一数值。
步骤S352:根据所述第一数值以及所述第二随机字符串,生成第二密钥。
在一些实施例中,可以是先对第一字符串进行数值转换,得到转换后的第一数值,然后根据第一数值以及第二随机字符串,生成第二密钥。其中,数值转换可以理解为按照某种规则将字符转换为数值的过程,其可以是现有的任意数值转换算法,如ASCII码值转换。
在一些实施例中,可以是对第一字符串中的每个字符进行数值转换,也可以仅对第一字符串中的部分字符进行数值转换,如可以是对第一字符串中的前6个或者后6个字符进行数值转换,也可以是对第一字符串中的前半部分或者后半部分字符进行数值转换,在此并不作限定。
示例性地,可以是第一字符串的前6个字符,并逐个转为ASCII码值。得到6位数字,记为n1,n2,n3,n4,n5,n6。
在一些实施例中,请参阅图7,步骤S352可以包括:
步骤S3521:确定所述第二随机字符串的字符个数。
步骤S3522:按照所述字符个数,对所述第一数值进行取余处理,得到第二数值。
步骤S3523:根据所述第二数值,从所述第二随机字符串中选取得到第二字符串。
步骤S3524:根据所述第二字符串,生成第二密钥。
示例性地,若确定第二随机字符串的字符个数为k0,k1...k9共10个,则可以使用第一数值(n1,n2,n3,n4,n5,n6),逐个对10进行取余处理,得到每个对应的余数作为第二数值,从而可以根据第二数值,从第二随机字符串中选取得到第二字符串。可选的,可以是将第二数值作为下标,从第二随机字符串k0,k1...k9中对应选取下标对应的字符串,得到6个随机字符串,作为第二字符串,然后根据第二字符串,生成第二密钥。从而将密钥的个数,与第一数值和第二随机字符串关联起来,并通过取余以及下标选择处理,大大增加了密钥生成的复杂度,提升了攻击者的破解门槛。
在一些实施例中,为了进行一步增加复杂度,在得到第二字符串后,可以按照原始第二随机字符串的字符排列顺序,对第二字符串进行顺序拼接,将拼接后的字符串进行MD5处理得到最终的第二密钥,记为key。
步骤S360:根据所述第二密钥对所述待确认的加密数据进行解密处理。
在本申请实施例中,在得到第二密钥后,可以利用该第二密钥对待确认的加密数据进行解密处理,从而得到明文报文。同理,如果解密失败,说明密钥有误,当前的加密数据为非法数据,可以进行拦截。
本申请实施例提供的数据加密方法,服务端在接收到客户端发送的访问请求时,可以随机确定第一密钥生成规则,该第一密钥生成规则包括标识信息,然后服务端可以将该第一密钥生成规则发送至客户端,以使客户端用于基于该第一密钥生成规则生成第一密钥,并根据该第一密钥对待发送数据加密,得到加密数据,并将该加密数据以及前述的标识信息向服务端发送。然后服务端在接收到客户端发送的待确认的标识信息以及待确认的加密数据时,可以根据标识信息与密钥生成规则的对应关系,确定待确认的标识信息对应的第二密钥生成规则,第二密钥生成规则包括第二随机数、第二随机字符串以及第二随机加密算法。从而服务器可基于第二随机加密算法,对第二随机数进行加密,得到第一字符串,以根据第一字符串以及第二随机字符串,生成第二密钥,并根据该第二密钥对待确认的加密数据进行解密处理。如此,由于随机数、随机字符串、随机加密算法均是动态变化的,因此通过随机数、随机字符串、随机加密算法来共同构成密钥生成规则,使得密钥组装过程更加复杂,并存在一些误导性来混淆非法攻击,实现了密钥的组装无规率性,让非法攻击破解者无规律可循,提高了攻击者的破解门槛,保证了接口的安全性,提高了数据传输时的安全性,客户端也无需保存密钥。
请参阅8,图8示出了本申请再一个实施例提供的数据加密方法的流程示意图。上述访问请求用于请求指定服务的非加密接口时,指定服务的非加密接口可以包括第一接口以及第二接口,上述第一密钥生成规则包括第一部分规则以及第一部分规则。下面将针对图8所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S410:在接收到客户端发送的第一访问请求时,随机确定所述第一部分规则,其中,所述第一访问请求用于请求指定服务的第一接口。
步骤S420:发送所述第一部分规则至所述客户端。
在本申请实施例中,为了增加密钥生成规则的复杂度和误导性,可以是在指定服务存在多个非加密接口时,将密钥生成规则划分多个部分,分批次下发给客户端。本申请以指定服务存在两个非加密接口(第一接口以及第二接口)为例进行说明,三个及其以上的非加密接口同理可得,此处不作赘述。
具体地,在接收到客户端发送的第一访问请求时,可以随机确定第一密钥生成规则中的第一部分规则,然后再将该第一部分规则返回至客户端其中,第一访问请求用于请求指定服务的第一接口。
在一些实施例中,若第一密钥生成规则由多个随机参数构成时,可以将多个随机参数中的至少部分随机参数作为第一部分规则,发送至客户端。其中,至少部分随机参数可以根据实际应用场景进行设置,此处不作限定。例如,根据指定服务存在的非加密接口的个数,对多个随机参数进行均分,从而得到客户端请求每个非加密接口时,服务器每次需要返回的至少部分随机参数。又例如,固定将多个随机参数进行对半切分,将其中的一半随机参数作为第一部分规则。
步骤S430:在接收到客户端发送的第二访问请求时,随机确定所述第二部分规则,其中,所述第二访问请求用于请求指定服务的第二接口。
步骤S440:发送所述第二部分规则至所述客户端,其中,所述客户端用于基于所述第一部分规则以及所述第二部分规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述加密数据向所述服务端发送。
同理,在接收到客户端发送的第二访问请求时,可以随机确定第一密钥生成规则中的第二部分规则,然后再将该第二部分规则返回至客户端,其中,所述第二访问请求用于请求指定服务的第二接口。客户端在接收到第一部分规则以及第二部分规则后,可以将其组装为一个完整的密钥生成规则,从而可以根据该完整的密钥生成规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述加密数据向所述服务端发送。
在一些实施例中,若第一密钥生成规则由多个随机参数构成,且将多个随机参数中的至少部分随机参数作为第一部分规则发送至客户端后,可以将剩下的所有随机参数作为第二部分规则,发送至客户端。
示例性地,可以是将密钥生成规则中的随机字符串划分为两部分。以随机字符串的字符个数为k0,k1...k9为例,下发给客户端的第一部分规则可以是k0,k1...k4,下发给客户端的第二部分规则可以是k5,k1...k9。从而客户端在需要对待发送数据加密时,将第一部分规则和第二部分规则的随机字符串进行拼接,得到完整密钥生成规则中的随机字符串。
可以理解的是,由于标识信息是唯一标识密钥生成规则,因此,在分批次下方部分规则时,每个部分规则都需要携带相同的标识信息,以保证规则拼接的正确。
本申请实施例提供的数据加密方法,有多个非加密接口先于所述待加密接口请求时,为了提高密钥组装过程的复杂度,提高攻击者的破解门槛,服务器可以将密钥生成规则划分为多个部分以分批次发送给客户端,使客户端在通过待加密接口发送待发送数据时,可以基于接收到的多个部分规则进行组合,得到完整的密钥生成规则后来生成第一密钥,以根据该密钥对待发送数据加密,得到加密数据,并将加密数据向所述服务端发送。由此本方法中,服务器可以根据待加密接口之前请求的非加密接口数量,动态确定密钥生成规则以及规则下发策略,使得密钥组装过程更加复杂,并存在一些误导性来混淆非法攻击,实现了密钥的组装无规率性,让非法攻击破解者无规律可循,提高了攻击者的破解门槛,保证了接口的安全性,提高了数据传输时的安全性,客户端也无需保存密钥。
请参阅图9,图9示出了本申请还一个实施例提供的数据加密方法的流程示意图。数据加密方法可应用于客户端,在具体的实施例中,该数据加密方法可应用于如图17所示的数据加密装置900以及配置有所述数据加密装置900的电子设备(图18)。下面将针对图9所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S510:发送访问请求至服务端,所述服务端用于随机确定第一密钥生成规则,并将所述第一密钥生成规则返回至所述客户端。
在本申请实施例中,客户端在需要进行安全数据传输时,可以发送访问请求至服务端,以使服务端在接收到该访问请求时,可以随机确定第一密钥生成规则,并将该第一密钥生成规则返回至客户端,从而客户端可以根据该第一密钥生成规则实现安全数据传输。具体过程可以参阅前述实施例的内容,此处不再赘述。
在一些实施例中,客户端发送访问请求的接口与需要进行安全数据传输的接口可以是同一接口,也就是说,当客户端需要对当前的接口进行加密传输时,可以先通过当前的接口发送访问请求至服务端,然后等待服务端返回第一密钥生成规则,以根据返回的第一密钥生成规则对当前接口进行数据的加密传输,从而保证了后续数据传输的安全性。
在另一些实施例中,客户端发送访问请求的接口与需要进行安全数据传输的接口也可以是不同接口,也就是说,当客户端需要对目标接口进行加密传输时,可以先通过其他接口发送访问请求至服务端,然后等待服务端返回第一密钥生成规则,以根据返回的第一密钥生成规则对目标接口进行加密传输,从而保证了目标接口的数据传输安全性。
步骤S520:在接收到所述服务端返回的所述第一密钥生成规则时,基于所述第一密钥生成规则生成第一密钥。
可以理解的是,虽然本申请的密钥生成规则是由随机字符和/或数字构成的,但客户端开发者和服务端开发者可以在开发之初就约定好某些字符和/或数字的含义,从而客户端在获取到服务器返回的随机确定的第一密钥生成规则时,可以按照约定好的含义,对第一密钥生成规则进行翻译,得到用于生成第一密钥的算法,并根据该算法生成第一密钥。具体过程可以参阅前述实施例的内容,此处不再赘述。
步骤S530:根据所述第一密钥对待发送数据加密,得到加密数据。
在本申请实施例中,待发送数据可以是需要进行加密的数据,其可以是数据通信过程中传输的关键数据,或是各类对安全性有较高要求的数据,比如,用户注册的数据、支付计费的数据、用户鉴权的数据等。在一些实施例中,待加密数据可以是电子设备在运行过程中产生的数据,也可以是从其他电子设备接收到的数据,本申请实施例这里不做限定。客户端在需要发送待加密的数据时,可以根据第一密钥生成规则生成第一密钥后,利用该第一密钥对待发送数据进行加密,得到加密数据。具体过程可以参阅前述实施例的内容,此处不再赘述。
步骤S540:发送所述加密数据至所述服务端。
在本申请实施例中,客户端在得到加密数据后,可以发送该加密数据至服务端,从而实现数据的安全传输。具体过程可以参阅前述实施例的内容,此处不再赘述。
本申请实施例提供的数据加密方法,客户端通过发送访问请求至服务端,以使服务端用于随机确定第一密钥生成规则,并将该第一密钥生成规则返回至客户端,从而客户端在接收到服务端返回的第一密钥生成规则时,可以基于第一密钥生成规则生成第一密钥,然后根据第一密钥对待发送数据加密,得到加密数据,并发送该加密数据至服务端。本方法由服务器动态确定密钥生成规则,以使客户端直接根据该规则生成密钥即可,客户端无需保存密钥,保证了密钥的安全性,提高了数据传输时的安全性。
请参阅图10,图10示出了本申请又另一个实施例提供的数据加密方法的流程示意图。数据加密方法可应用于客户端。下面将针对图10所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S610:发送访问请求至服务端,所述服务端用于随机确定第一密钥生成规则,并将所述第一密钥生成规则返回至所述客户端,所述第一密钥生成规则包括标识信息。
步骤S620:在接收到所述服务端返回的所述第一密钥生成规则时,基于所述第一密钥生成规则生成第一密钥。
在一些实施例中,第一密钥生成规则包括第一随机数、第一随机字符串以及第一随机加密算法,其中,第一随机加密算法为多种加密算法中随机确定的一种加密算法。具体地,请参阅图11,步骤S620可以包括:
步骤S621:基于所述第一随机加密算法,对所述第一随机数进行加密,得到第三字符串。
步骤S622:根据所述第三字符串以及所述第一随机字符串,生成第一密钥。
在一些实施例中,请参阅图12,步骤S622可以包括:
步骤S6221:对所述第三字符串进行数值转换,得到第三数值。
步骤S6222:根据所述第三数值以及所述第一随机字符串,生成第一密钥。
在一些实施例中,可以是确定所述第一随机字符串的字符个数;按照所述字符个数,对所述第三数值进行取余处理,得到第四数值;根据所述第四数值,从所述第一随机字符串中选取得到第四字符串;根据所述第四字符串,生成第一密钥。
步骤S630:根据所述第一密钥对待发送数据加密,得到加密数据。
步骤S640:发送所述标识信息以及所述加密数据至所述服务端,所述服务端用于根据所述标识信息确定对应的所述第一密钥生成规则,并基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对所述加密数据进行解密处理。
在本申请实施例中,步骤S610~步骤S640可以参阅前述实施例的内容,此处不再赘述。由于是服务端和客户端约定的含义,因此第一密钥生成规则以及第一密钥的生成,都可以参阅前述第二密钥生成规则以及第二密钥的生成,也即密钥生成规则的翻译,以及密钥的生成,服务端和客户端是采用的相同方法,这才能保证服务端能在接收到客户端发送的加密数据,能正确解密。
本申请实施例提供的数据加密方法,客户端通过发送访问请求至服务端,以使服务端用于随机确定第一密钥生成规则,并将该第一密钥生成规则返回至客户端,从而客户端在接收到服务端返回的第一密钥生成规则时,可以基于第一密钥生成规则生成第一密钥,然后根据第一密钥对待发送数据加密,得到加密数据,并发送该加密数据至服务端。同时由于密钥生成规则包括标识信息,从而服务器可以以标识信息为关联,在客户端返回加密数据以及标识信息时,能够利用标识信息,确定密钥生成规则并对应生成密钥进行解密。如此,密钥生成规则可以动态变化,做到密钥的组装无规率性,让非法攻击破解者无规律可循,保证了接口的安全性,提高了数据传输时的安全性,客户端也无需保存密钥。
请参阅图13,图13示出了本申请又再一个实施例提供的数据加密方法的流程示意图。数据加密方法可应用于物联网系统,所述物联网系统包括客户端以及服务端。下面将针对图13所示的流程进行详细的阐述,所示数据加密方法具体可以包括以下步骤:
步骤S710:所述客户端发送访问请求至所述服务端;
步骤S720:所述服务端在接收到所述客户端发送的访问请求时,随机确定第一密钥生成规则,并将所述第一密钥生成规则返回至所述客户端;
步骤S730:所述客户端在接收到所述服务端返回的所述第一密钥生成规则时,基于所述第一密钥生成规则生成第一密钥,根据所述第一密钥对待发送数据加密,得到加密数据,并发送所述加密数据至所述服务端。
在本申请实施例中,步骤S710~步骤S730可以参阅前述实施例的内容,此处不再赘述。
本申请实施例提供的数据加密方法,客户端通过发送访问请求至服务端,以使服务端用于随机确定第一密钥生成规则,并将该第一密钥生成规则返回至客户端,从而客户端在接收到服务端返回的第一密钥生成规则时,可以基于第一密钥生成规则生成第一密钥,然后根据第一密钥对待发送数据加密,得到加密数据,并发送该加密数据至服务端。本方法由服务器动态确定密钥生成规则,以使客户端直接根据该规则生成密钥即可,客户端无需保存密钥,保证了密钥的安全性,提高了数据传输时的安全性。
请参阅图14,图14示出了本申请实施例提供一种数据加密方法的流程框图。具体地,正常用户请求充值接口(待加密接口)前,一定会先请求商品(SKU)列表接口,所以在用户请求商品(SKU)列表接口时,除了返回商品列表外,附加返回密钥生成规则。其中,密钥生成规则包括:随机字符串:k0,k1...k9共10个,根据需要可以调整为任意个数;随机加密算法类型:1-不做处理,2-对随机数进行AES加密处理,3-对随机数进行SHA-256处理,4-对随机数进行MD5处理,根据需要,可以增加更多加密类型;标识信息:请求流水号,用于标识加密规则;以及随机数。然后服务端可以缓存标识信息与随机字符串、随机加密算法类型以及随机数的映射关系。
客户端在接收到密钥生成规则后,可以根据随机加密算法类型,对应的加密处理方式,对随机数进行处理,得到加密后的字符串,记为S1。然后取S1字符串的前6个字符,并逐个转为ASCII码值,得到6位数字,记为n1,n2,n3,n4,n5,n6。使用n1,n2,n3,n4,n5,n6这6个数字,逐个对10(对应随机字符串的个数)取余,并用余数作为下标,从随机字符串中取对应的字符串,得到对应的6个随机字符串,并按顺序拼接,将拼接后的字符串进行MD5处理得到最终的加密密钥,记为key。然后客户端使用得到的key,对充值接口的请求报文进行AES加密处理。服务端使用标识信息作为关联,得到密钥生成规则,重复前述步骤,得到最终的加密密钥key,并对加密的报文参数进行AES解密,得到明文报文,如果解密失败,说明密钥有误,则对订单进行拦截。
请参阅图15,图15示出了本申请实施例提供一种应用场景示意图。
为了逃避公安侦察打击和支付平台的风控监测,非法结算黑产团伙通过勾结电商上的话费充值店铺,从费充值店铺批量、实时获取正常用户的充值订单信息,并从赌博平台获取赌资充值订单信息,通过技术手段将赌博充值订单+话费充值订单匹配,然后调用合法话费充值渠道商的充值接口获取到支付链接,并将支付链接返回给赌客,让赌客完成支付,从而让赌客为正常用户完成话费充值,且拦截正常用户支付的话费资金并结算给赌博团伙,实现为赌博入金的功能。
具体操作过程是:赌客在赌博平台选择充值金额;非法结算平台将赌博充值订单+话费充值订单进行匹配,并调用话费充值运营商的充值接口获得支付链接;赌客打开支付链接,进入支付页面,收款方为运营商商户;赌客完成支付后,赌资进入运营商账户,帮助正常用户完成话费充值;正常充值用户支付给充值店铺的金额,在结算过程中被充值店铺拦截,结算给非法资金结算团伙。
对于上述应用场景,可以采用本申请的数据加密方式,只有正常客户端在请求充值接口前,会请求商品(SKU)列表接口。从而只有正常客户端才能从服务端处获取到随机确定的密钥生成规则,从而正常客户端才能发送正确的加密数据至服务端,被服务端解密。从而解决了黑产刷单的问题。
请参阅图16,其示出了本申请实施例提供的一种数据加密装置800的结构框图,应用于服务端,该数据加密装置800包括:规则确定模块810以及规则发送模块820。其中,规则确定模块810,用于在接收到客户端发送的访问请求时,随机确定第一密钥生成规则;规则发送模块820,用于发送所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述加密数据向所述服务端发送。
在一些实施例中,所述第一密钥生成规则包括标识信息,所述客户端用于发送所述标识信息以及所述加密数据至所述服务端,该数据加密装置800还可以包括:标识关联模块,用于在接收到所述客户端发送的待确认的标识信息以及待确认的加密数据时,根据所述待确认的标识信息,确定对应的第二密钥生成规则;密钥生成模块,用于基于所述第二密钥生成规则生成第二密钥;解密模块,用于根据所述第二密钥对所述待确认的加密数据进行解密处理。
在一些实施例中,上述解密模块可以具体用于:判断所述第二密钥是否成功解密所述待确认的加密数据;若解密失败,则确定所述待确认的加密数据为异常数据。
在一些实施例中,所述第二密钥生成规则包括第二随机数、第二随机字符串以及第二随机加密算法,其中,所述第二随机加密算法为多种加密算法中随机确定的一种加密算法,上述密钥生成模块可以包括:随机数加密单元,用于基于所述第二随机加密算法,对所述第二随机数进行加密,得到第一字符串;字符运算单元,用于根据所述第一字符串以及所述第二随机字符串,生成第二密钥。
在一些实施例中,上述字符运算单元可以包括:转换子单元,用于对所述第一字符串进行数值转换,得到第一数值;数值运算子单元,用于根据所述第一数值以及所述第二随机字符串,生成第二密钥。
在一些实施例中,上述数值运算子单元可以具体用于:确定所述第二随机字符串的字符个数;按照所述字符个数,对所述第一数值进行取余处理,得到第二数值;根据所述第二数值,从所述第二随机字符串中选取得到第二字符串;根据所述第二字符串,生成第二密钥。
在一些实施例中,所述访问请求用于请求指定服务的非加密接口,其中,所述指定服务包括所述非加密接口以及待加密接口,所述非加密接口先于所述待加密接口请求,所述待发送数据为所述待加密接口的请求报文,规则发送模块820可以具体用于:发送所述访问请求的响应报文以及所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对所述待加密接口的请求报文加密,得到加密数据,并将所述加密数据向所述服务端发送。
在一些实施例中,所述访问请求用于请求支付服务的商品列表接口,所述待加密接口包括充值接口,规则发送模块820可以具体用于:发送所述支付服务的商品列表以及所述第一密钥生成规则至所述客户端,其中,所述客户端用于基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对所述充值接口的请求报文加密,得到加密数据,并将所述加密数据向所述服务端发送。
在一些实施例中,所述指定服务的非加密接口包括第一接口以及第二接口,所述第一密钥生成规则包括第一部分规则以及第一部分规则,规则确定模块810可以具体用于:在接收到客户端发送的第一访问请求时,随机确定所述第一部分规则,其中,所述第一访问请求用于请求指定服务的第一接口;在接收到客户端发送的第二访问请求时,随机确定所述第二部分规则,其中,所述第二访问请求用于请求指定服务的第二接口。规则发送模块820可以具体用于:发送所述第一部分规则至所述客户端;发送所述第二部分规则至所述客户端,其中,所述客户端用于基于所述第一部分规则以及所述第二部分规则生成第一密钥,并根据所述第一密钥对待发送数据加密,得到加密数据,并将所述加密数据向所述服务端发送。
请参阅图17,其示出了本申请实施例提供的一种数据加密装置900的结构框图,应用于客户端,该数据加密装置900包括:请求发送模块910、密钥生成模块920、数据加密模块930以及数据传输模块940。其中,请求发送模块910,用于发送访问请求至服务端,所述服务端用于随机确定第一密钥生成规则,并将所述第一密钥生成规则返回至所述客户端;密钥生成模块920,用于在接收到所述服务端返回的所述第一密钥生成规则时,基于所述第一密钥生成规则生成第一密钥;数据加密模块930,用于根据所述第一密钥对待发送数据加密,得到加密数据;数据传输模块940,用于发送所述加密数据至所述服务端。
在一些实施例中,所述第一密钥生成规则包括标识信息,数据传输模块940可以具体用于:发送所述标识信息以及所述加密数据至所述服务端,所述服务端用于根据所述标识信息确定对应的所述第一密钥生成规则,并基于所述第一密钥生成规则生成第一密钥,并根据所述第一密钥对所述加密数据进行解密处理。
在一些实施例中,所述第一密钥生成规则包括第一随机数、第一随机字符串以及第一随机加密算法,其中,所述第一随机加密算法为多种加密算法中随机确定的一种加密算法,密钥生成模块920可以包括:随机数机密单元,用于基于所述第一随机加密算法,对所述第一随机数进行加密,得到第三字符串;字符运算单元,用于根据所述第三字符串以及所述第一随机字符串,生成第一密钥。
在一些实施例中,字符运算单元可以包括:转换子单元,用于对所述第三字符串进行数值转换,得到第三数值;数值运算子单元,用于根据所述第三数值以及所述第一随机字符串,生成第一密钥。
在一些实施例中,上述数值运算子单元可以具体用于:确定所述第一随机字符串的字符个数;按照所述字符个数,对所述第三数值进行取余处理,得到第四数值;根据所述第四数值,从所述第一随机字符串中选取得到第四字符串;根据所述第四字符串,生成第一密钥。
另外,本申请实施例还提供了一种物联网系统,所述物联网系统包括客户端以及服务端,其中:所述客户端,用于发送访问请求至所述服务端;所述服务端,用于在接收到所述客户端发送的访问请求时,随机确定第一密钥生成规则,并将所述第一密钥生成规则返回至所述客户端;所述客户端,还用于在接收到所述服务端返回的所述第一密钥生成规则时,基于所述第一密钥生成规则生成第一密钥,根据所述第一密钥对待发送数据加密,得到加密数据,并发送所述加密数据至所述服务端。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
综上所述,本申请实施例提供的数据加密装置用于实现前述方法实施例中相应的数据加密方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参考图18,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的终端设备,也可以是服务器。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中,一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个应用程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、数据加密器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
可以理解,图18所示结构仅为示例,电子设备100还可以包括比图18所示更多或更少的组件,或是具有与图18所示完全不同的配置。本申请实施例对此没有限制。
请参考图19,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。