掌桥专利:专业的专利平台
掌桥专利
首页

令牌生成方法和装置、电子设备及存储介质

文献发布时间:2023-06-19 19:30:30


令牌生成方法和装置、电子设备及存储介质

【技术领域】

本申请涉及网络安全技术,尤其涉及一种令牌生成方法和装置、电子设备及存储介质。

【背景技术】

随着互联网技术的发展,通过网络存储和提供的数据和资源越来越多,同时,由此引起的网络安全问题也日益严重。目前,网络安全威胁越来越大,各种应用都迫切需要更好的技术来确保安全。如何保护网络上存储数据和资源的安全性,显得越来越重要。

目前常见的方法,是有客户端(client端)生成令牌(token)作为临时密钥并发送给服务端(server端),其中,令牌相当于账户名和密码,用来决定是否允许本次请求和判断本次请求属于哪一个用户,它允许客户端在不提供密码或其他凭证的前提下访问网络数据和系统资源。服务端通过校验令牌是否正确,确定是否客户端访问网络数据和系统资源。

在实现本申请的过程中,本发明人通过研究发现,客户端生成令牌的代码很容易被攻击者逆向分析透彻,之后,攻击者就可以使用自动化工具采用这些代码自动生成令牌发送给服务端,而服务端难以区分接收到的令牌是具有访问权限的用户通过客户端发送还是攻击者发送,由此导致攻击者通过该令牌访问网络数据和系统资源,或者进一步对网络数据和系统资源进行篡改或者植入病毒,可能给用户带来极大损失。

【发明内容】

本申请的多个方面提供一种令牌生成方法和装置、电子设备及存储介质,用以提高令牌的安全性。

本申请的一方面,提供一种令牌生成方法,应用于客户端,所述方法包括:

接收服务端发送的目标总代码与第一目标方案标识;其中,所述第一目标方案标识用于标识第一目标算法相关方案,所述第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;所述第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;所述目标总代码中包括所述第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码;

通过执行所述目标总代码,基于所述第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理,得到令牌,所述令牌包括基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理得到的数据;

将请求内容、所述令牌与所述第一目标方案标识发送给所述服务端。

本申请的另一方面,提供另一种令牌生成方法,应用于服务端,包括:

按照预设周期,调整参与生成令牌的算法相关方案;其中,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;

响应于达到预设触发条件,获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取所述第二目标算法相关方案的方案标识作为第二目标方案标识;其中,每个方案标识用于标识一个算法相关方案,所述方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识;所述第二目标方案标识用于标识所述第二目标算法相关方案,所述第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案,所述第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识;

在对应关系表中记录所述第二目标方案标识与所述第二目标算法相关方案的过期时间信息之间的对应关系;

基于所述第二目标算法相关方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,所述目标总代码中包括所述目标编码算法方案对应的子代码、所述目标加密算法方案对应的子代码和所述目标效验算法方案对应的子代码;

将所述目标总代码与所述第二目标方案标识发送给客户端,以便所述客户端通过执行所述目标总代码、生成基于所述第二目标算法相关方案处理后的令牌。

本申请的又一方面,提供一种令牌生成装置,应用于客户端,包括:

接收模块,用于接收服务端发送的目标总代码与第一目标方案标识;其中,所述第一目标方案标识用于标识第一目标算法相关方案,所述第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;所述第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;所述目标总代码中包括所述第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码;

生成模块,用于通过执行所述目标总代码,基于所述第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理,得到令牌,所述令牌包括基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理得到的数据;

第一发送模块,用于将请求内容、所述令牌与所述第一目标方案标识发送给所述服务端。

本申请的又一方面,提供另一种令牌生成装置,应用于服务端,包括:

调整模块,用于按照预设周期,调整参与生成令牌的算法相关方案;其中,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;

获取模块,用于响应于达到预设触发条件,获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取所述第二目标算法相关方案的方案标识作为第二目标方案标识;其中,每个方案标识用于标识一个算法相关方案,所述方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识;所述第二目标方案标识用于标识所述第二目标算法相关方案,所述第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案,所述第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识;

记录模块,用于在对应关系表中记录所述第二目标方案标识与所述第二目标算法相关方案的过期时间信息之间的对应关系;

更新模块,基于所述第二目标算法相关方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,所述目标总代码中包括所述目标编码算法方案对应的子代码、所述目标加密算法方案对应的子代码和所述目标效验算法方案对应的子代码;

第二发送模块,用于将所述目标总代码与所述第二目标方案标识发送给客户端,以便所述客户端通过执行所述目标总代码、生成基于所述第二目标算法相关方案处理后的令牌。

本申请的再一方面,提供一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一方面所提供的令牌生成方法。

本申请的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述一方面所提供的令牌生成方法。

由上述技术方案可知,服务端可以按照预设周期调整参与生成令牌的算法相关方案,由于算法相关方案包括编码算法方案、加密算法方案和效验算法方案,编码算法方案、加密算法方案和效验算法方案中的各算法方案分别存在多个候选方案,可以组合出的、参与生成令牌的算法相关方案可以达到几十种、上百种甚至上千万种,从而确保服务端下发给客户端、用于生成令牌的代码周期性的动态变化,这样客户端生成的令牌也动态变化,大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌,从而提高了令牌的安全性。另外,由于周期性动态调整参与生成令牌的算法相关方案且目标算法相关方案都具有相应的过期时间,即使攻击者花费大量的时间逆向分析出某次用于生成令牌的代码中的部分代码,这部分代码已经过期从而失效,将其整合到自动化工具中自动生成令牌已毫无任何意义,从而提高了令牌的安全性。

另外,基于本申请提供的技术方案,服务端可以将生成令牌的目标总代码与第二目标方案标识一起发送给客户端,客户端基于该目标总代码生成令牌后,可以将请求内容、生成的令牌以及接收到的第一目标方案标识一起返回服务端,这样,服务端可以基于第一目标方案标识获取相应的第一目标算法相关方案对令牌进行处理,从而提高令牌的可识别性和安全性。

另外,基于本申请提供的技术方案,可以避免攻击者使用自动化工具采用逆向分析出的代码自动生成令牌访问网络数据和系统资源、或者进一步对网络数据和系统资源进行篡改或者植入病毒,有效保障网络数据和系统资源的安全性。

【附图说明】

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本申请一实施例提供的令牌生成方法的流程示意图;

图2为本申请另一实施例提供的令牌生成方法的流程示意图;

图3为本申请又一实施例提供的令牌生成方法的流程示意图;

图4为本申请一实施例提供的令牌生成装置的结构示意图;

图5为本申请另一实施例提供的令牌生成装置的结构示意图;

图6为本申请一实施例提供的令牌生成系统的结构示意图;

图7为可以用来实施本申请的实施例的示例电子设备的示意性框图。

【具体实施方式】

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其它实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中所涉及的终端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)、MP3播放器、MP4播放器、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备、模块、对象、信息等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序,也不表示第一对象和第二对象是否必然相同或不同。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在相关技术中,客户端基于固定的代码生成令牌。例如,在一种相关技术中,客户端通过执行固定的代码,传入用于生成令牌的数据,采用固定的校验算法、加密算法和编码算法依次对数据进行校验、加密和编码。

由于在相关技术中,客户端基于固定的代码生成令牌,客户端生成令牌的代码很容易被攻击者逆向分析透彻,之后,攻击者就可以使用自动化工具采用这些代码自动生成令牌发送给服务端,而服务端难以区分接收到的令牌是具有访问权限的用户通过客户端发送还是攻击者发送,由此导致攻击者通过该令牌访问网络数据和系统资源,或者进一步对网络数据和系统资源进行篡改或者植入病毒,可能给用户带来极大损失。

因此,亟需提供一种动态生成令牌的方法和装置、电子设备及计算机可读存储介质,用以提高令牌的安全性。

本申请的设计思想在于,服务端可以按照预设周期调整参与生成令牌的算法相关方案,包括编码算法方案、加密算法方案和效验算法方案,确保服务端下发给客户端、用于生成令牌的代码周期性动态变化,这样客户端生成的令牌也动态变化,大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,另外,由于动态调整参与生成令牌的算法相关方案且下发给客户端的第二目标算法相关方案都具有相应的过期时间,即使攻击者花费大量的时间逆向分析出某次用于生成令牌的代码中的部分代码,这部分代码已经过期从而失效,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌,从而提高了令牌的安全性。

本申请实施例可应用于客户端-服务端(C/S)架构的各种电子设备。

图1为本申请一实施例提供的令牌生成方法的流程示意图。该实施例应用于服务端,如图1所示。

101,按照预设周期,调整参与生成令牌的算法相关方案。

其中,所述算法相关方案为生成令牌的过程中对数据进行处理(例如校验、加密、编码等)所采用的相应算法方案,可以包括编码算法方案、加密算法方案和效验算法方案。其中的编码算法方案、加密算法方案和效验算法方案中的各算法方案分别存在多个候选方案,每个候选方案分别具有相应的算法标识(ID),其中,每个算法标识用于唯一标识一个算法,可以由服务端预先分配,该算法标识例如可以是算法名称、服务端全局唯一的算法编号、或者同时包括算法名称和服务端全局唯一的算法编号等等,本申请实施对算法标识的具体构成不做限制。

在算法相关方案中,针对令牌生成过程中的校验环节、加密环节、编码环节分别提供了多种对应的候选方案,以供每次选取使用。

例如,在校验环节使用的效验算法方案,例如可以包括MD5、SHA-1、SHA-2、CRC32、CRC16、CRC8、LRC、SM3或其他校验算法等多种候选方案,并可以为各候选方案分配对应的算法标识(ID)。在加密环节使用的加密算法方案,例如可以包括AES128、AES256、3DES、SM4、RC5、RC6或其他加密算法等多种候选方案,并可以为各候选方案分配对应的算法标识。在编码环节使用的编码算法方案,例如可以包括但不限于Base81、Base56、Base64或其他编码方案等多种候选方案,并可以为各候选方案分配对应的算法标识。

其中的预设周期的时长可以根据实际需求设置,并可以根据需要更新,例如可以为30秒、2分钟、1小时等。

102,响应于达到预设触发条件,获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取该第二目标算法相关方案的方案标识作为第一目标方案标识。

其中,第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案。每个方案标识用于标识一个算法相关方案,该方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识。相应的,第二目标方案标识用于标识第二目标算法相关方案,第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识。

本申请实施例中,预设触发条件为服务端预先设定的用于触发生成用于生成令牌的总代码的条件,以用于客户端基于该总代码生成令牌,该预设触发条件可以根据实际需求设定。例如,在一种具体实现中,服务端可以实时、随机或者服务端闲赋时作为预设触发条件,触发生成用于生成令牌的总代码,执行本实施例的操作102-104,在后续客户端需要时执行操作105。又如,在另一种具体实现中,可以以一些预设用户事件作为预设触发条件,服务端可以通过客户端监听预设用户事件,例如是不是有用户操作产生的鼠标输入信号或者键盘输入信号,在客户端监听到这些用户事件时,便会触发服务端生成用于生成令牌的总代码,执行本实施例的操作102-105。再如,在又一种具体实现中,服务端可以预设周期作为预设触发条件,通过定时器周期性的触发生成用于生成令牌的总代码,执行本实施例的操作102-104,在后续客户端需要时执行操作105;或者直接执行本实施例的操作101-105。

之后,可分别执行操作103和104。

103,在对应关系表中记录第二目标算法相关方案、第二目标方案标识与第二目标算法相关方案的过期时间信息之间的对应关系。

可选地,在该对应关系中还可以包括第二目标算法相关方案,或者也可以通过一个单独的表格记录第二目标算法相关方案与第二目标方案标识之间的对应关系,本申请实施例对此不做限制。

其中,第二目标算法相关方案的过期时间信息可以包括起始时刻和有效时长。在一种具体实现中,可以以服务端获得第二目标算法相关方案的时间作为起始时刻,以所述预设周期的时长作为有效时长。在另一种具体实现中,可以以所述预设周期的开始时间作为起始时刻,以所述预设周期的时长作为有效时长。或者,也可以随机选取一个不大于所述预设周期的时长作为有效时长,有效时长的大小可以根据需要更新,例如可以为30秒、2分钟、5分钟等。

由此,服务端可以通过第二目标方案标识记录当前周期内用于生成令牌的总代码采用何种算法相关方案生成令牌。

104,基于第二目标算法相关方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码。

其中,目标总代码中包括目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码。该目标总码与第二目标算法相关方案具有一一对应关系。

操作103和104可以同时执行,也可以以任意先后顺序执行,本申请实施例对此不做限制。

105,将目标总代码与第二目标方案标识发送给客户端,以便客户端通过执行该目标总代码、生成基于第二目标算法相关方案处理后的令牌。

在实际应用中,服务端可以在客户端需要向服务端发送业务请求的请求内容时将目标总代码与第二目标方案标识发送给客户端,也可以预先将目标总代码与第二目标方案标识发送给客户端,以便客户端在向服务端发送业务请求的请求内容之前,便可以通过执行该目标总代码生成令牌。

这样,服务端可以按照预设周期调整参与生成令牌的算法相关方案,由于算法相关方案包括编码算法方案、加密算法方案和效验算法方案,编码算法方案、加密算法方案和效验算法方案中的各算法方案分别存在多个候选方案,可以组合出的、参与生成令牌的算法相关方案可以达到几十种、上百种甚至上千万种,从而确保服务端下发给客户端、用于生成令牌的代码周期性的动态变化,这样客户端生成的令牌也动态变化,大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌,从而提高了令牌的安全性。另外,由于周期性动态调整参与生成令牌的算法相关方案且下发给客户端的目标算法相关方案都具有相应的过期时间,即使攻击者花费大量的时间逆向分析出某次用于生成令牌的代码中的部分代码,这部分代码已经过期从而失效,将其整合到自动化工具中自动生成令牌已毫无任何意义,从而提高了令牌的安全性。另外,可以避免攻击者使用自动化工具采用逆向分析出的代码自动生成令牌访问网络数据和系统资源、或者进一步对网络数据和系统资源进行篡改或者植入病毒,有效保障网络数据和系统资源的安全性。

可选地,在其中一些实现方式中,在操作101中,可以按照预设周期,从编码算法方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的编码算法方案;从加密算法方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的加密算法方案;从效验算法方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的校验算法方案。

基于本实施例,可以动态确定算法相关方案中编码算法方案、加密算法方案和效验算法方案对应的目标编码算法方案、目标加密算法方案和目标效验算法方案,从而使得参与生成令牌的算法相关方案动态变化,大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌。

可选地,在其中一些实现方式中,可以预先设置编码算法方案的候选方案、加密算法方案的候选方案和效验算法方案的候选方案、以及各候选方案对应的子代码;或者,还可以进一步对编码算法方案的候选方案、加密算法方案的候选方案和效验算法方案的候选方案、以及各候选方案对应的子代码进行更新。

基于本实施例,可以动态更新参与生成令牌的算法相关方案,从而进一步增加生成令牌的方案或代码被攻击者逆向分析的难度。

可选地,在其中一些实现方式中,在操作102中,获取当前周期内的目标编码算法方案、目标加密算法方案和目标效验算法方案之后,可以分别从预先设置的编码算法方案的候选方案、加密算法方案的候选方案和效验算法方案的候选方案以及各候选方案对应的子代码中,获取目标编码算法方案、目标加密算法方案和目标效验算法方案对应的子代码。

图2为本申请另一实施例提供的令牌生成方法的流程示意图,如图2所示,在图1所示实施例的基础上,还可以包括:

201,响应于接收到客户端发送的请求内容、令牌与第一目标方案标识。

其中的请求内容为客户端请求服务端处理的内容,例如,请求内容可以是网络数据访问请求、系统资源访问请求、用户个人信息的更新请求等等,本公开实施对请求内容对应的具体业务类型和具体内容不做限制。

本申请实施例中,“第一”、“第二”仅用于区别不同或可能不同的指代对象。第一目标方案标识为客户端发送给服务端的目标方案标识,可能是服务端下发给该客户端的、未被篡改的会话密钥,此时第一目标方案标识即为第二目标方案标识;另外,第一目标方案标识也可能是服务端下发后被篡改的目标方案标识,此时第一目标方案标识已与第二目标方案标识不同,可能与第二目标方案标识同时下发的目标总代码也被篡改。

202,从对应关系表中获取第一目标方案标识对应的过期时间信息。

其中,获取第一目标方案标识对应的第一目标算法相关方案与过期时间信息,即第一目标方案标识所标识的第一目标算法相关方案的过期时间信息。

响应于从对应关系表中获取到第一目标方案标识对应的过期时间信息,则说明该第一目标方案标识存在,执行操作203;否则,若从对应关系表中未获取到第一目标方案标识对应的过期时间信息,可以认为第一目标方案标识不存在,相对于下发给该客户端的第二目标方案标识已被篡改,不执行本实施例的后续流程,或者进一步向客户端反馈需要进行身份认证的响应消息。

203,响应于从对应关系表中获取到第一目标方案标识对应的过期时间信息,基于第一目标方案标识对应的过期时间信息确认第一目标方案标识所标识的第一目标算法相关方案是否过期。

其中,第一目标方案标识对应的过期时间信息可以包括起始时刻和有效时长。在一种具体实现中,可以以服务端生成第一目标算法相关方案的时间作为起始时刻,以所述预设周期的时长作为有效时长。在另一种具体实现中,可以以所述预设周期的开始时间作为起始时刻,以所述预设周期的时长作为有效时长。或者,也可以随机选取一个不大于所述预设周期的时长作为有效时长,有效时长的大小可以根据需要更新,例如可以为30秒、2分钟、5分钟等。

响应于第一目标算法相关方案未过期,开始执行操作204;否则,若第一目标算法相关方案已过期,不执行操作204及其后续流程,或者进一步向客户端反馈需要进行身份认证的响应消息。

例如,可以根据第一目标方案标识对应的过期时间信息中的起始时刻和有效时长,以服务端接收到令牌的时刻作为当前时刻,判断当前时刻是否在有效时长范围内,若当前时刻在有效时长范围内,确认第一目标算法相关方案未过期;否则,若当前时刻不在有效时长范围内,确认第一目标算法相关方案已过期。

204,基于第一目标算法相关方案对令牌进行处理,得到处理结果。

可选地,在其中一些实现方式中,在该操作204中,可以分别基于第一目标算法相关方案中的目标编码算法方案、目标加密算法方案和目标效验算法方案,对令牌依次进行解码、解密和校验处理。在校验通过后,执行操作205。否则,若校验未通过,不执行本实施例的后续流程,或者进一步向客户端反馈需要进行身份认证的响应消息。

例如,在一些具体实现方式中,在上述实施例的操作102中,具体可以利用预设校验算法对第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识进行校验计算,得到第二校验值,相应地,第二目标方案标识还包括该第二校验值。则该操作204中,可以基于第一目标算法相关方案中的目标编码算法方案对令牌进行解码,得到解码结果;然后,基于第一目标算法相关方案中的目标加密算法方案,对该解码结果进行解密,得到解密结果;进而,基于第一目标算法相关方案中的目标效验算法方案,针对该解密结果中第一目标方案标识中的各算法标识进行校验计算,得到第三校验值,比较该第三校验值与第一目标方案标识中的第一校验值是否相同,若第三校验值与第一校验值相同,校验通过;否则,若第三校验值与第一校验值不相同,则校验未通过。

205,基于令牌对应的数据结构方案,从处理结果中获取有效数据。

其中,所述数据结构方案用于确定令牌的数据结构。数据结构方案为参与生成令牌的各部分数据(即字段)在令牌中的数据结构(例如位置、隐藏方式等)的方案。

其中的有效数据,为各有效字段(即预设规则中令牌需要包括的字段,例如令牌版本号、令牌ID、令牌类型、令牌来源、令牌属性、client当前时间、可选数据等)的赋值,其中,令牌版本号(具体赋值)由服务端按照预设分配方式(例如随机分配、顺序分配)为本次用于生成的令牌分配的版本号,令牌版本号可以为整数、小数、浮点数,也可以为数字、字母、或者数字与字母组合成的字符串等等,该令牌版本号可以由服务端将目标总代码与第二目标方案标识发送给客户端时一起发送给客户端,也可以将该令牌版本号携带在第二目标方案标识中发送给客户端,本申请实施例对令牌版本号的分配方式和组成、以及发送给客户端的具体方式不做限制。令牌ID、令牌类型、令牌来源、令牌属性、client当前时间、可选数据等有效字段的赋值由客户端获取并上传,根据应用的业务,可选数据可以包括用户的输入数据、鼠标移动数据、键盘输入的统计数据、环境相关数据(例如窗口大小、当前操作系统、CPU型号等),本申请实施例对此不做限制。

响应于从处理结果中获取到有效数据,说明处理结果可读且有效,执行操作206;否则,若从处理结果中未获取到有效数据,不执行操作206及其后续流程,或者进一步向客户端反馈需要进行身份认证的响应消息。

206,对客户端发送的请求内容进行处理。

基于本实施例,服务端可以动态调整参与生成令牌的算法相关方案,将生成令牌的目标总代码与第二目标方案标识一起发送给客户端,客户端基于该目标总代码生成令牌后,可以将请求内容、生成的令牌以及接收到的第一目标方案标识一起返回服务端,这样,服务端可以基于第一目标方案标识获取相应的第一目标算法相关方案对令牌进行处理,从而提高令牌的可识别性和安全性;并且,服务端每次下发给客户端的第二目标算法相关方案都具有相应的过期时间,即使攻击者花费大量的时间逆向分析出某次用于生成令牌的代码中的部分代码,这部分代码已经过期从而失效,将其整合到自动化工具中自动生成令牌已毫无任何意义,从而提高了令牌的安全性。

可选地,在其中一些实现方式中,令牌对应的数据结构方案为预先设置的数据结构方案。相应地,目标总代码中包括该预先设置的数据结构方案对应的子代码。

这样,客户端通过执行目标总代码,分别对参与生成令牌的各字段进行赋值,并基于第一目标算法相关方案对各字段的赋值信息进行相应处理(例如校验、加密和编码),便可生成由预先设置的数据结构方案确定的数据结构、且经第一目标算法相关方案处理后的令牌。

可选地,在另一些实现方式中,令牌对应的数据结构方案为第三目标方案标识对应的第一目标数据结构方案。相应地,该实施例令牌生成方法还可以包括:按照所述预设周期调整数据结构方案,其中的数据结构方案存在多个候选方案;响应于达到所述预设触发条件,获取当前周期内的数据结构方案作为第二目标数据结构方案,并获取第二目标数据结构方案的方案标识作为第四目标方案标识,其中的第四目标方案标识用于标识第二目标数据结构方案。相应地,在操作103中,具体在对应关系表中记录第二目标方案标识、第四目标方案标识、以及第二目标算法相关方案与第二目标数据结构方案的过期时间信息之间的对应关系。在操作104中,具体基于第二目标算法相关方案对应的子代码和第二目标数据结构方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,该目标总代码中同时包括第二目标算法相关方案对应的子代码和第二目标数据结构方案对应的子代码。操作105中,具体将目标总代码、第二目标方案标识与第四目标方案标识发送给客户端,以便客户端通过执行目标总代码、生成由第二目标数据结构方案确定的数据结构并基于第二目标算法相关方案处理后的令牌。基于本实施例,参与生成令牌的字段在令牌中可以采用不同的数据结构,从而使得生成的令牌可以具有不同的数据结构且经过不同的算法相关方案处理,进一步提高了令牌的安全性。

可选地,在又一些实现方式中,在操作201中,具体可以是接收到客户端发送的请求内容、令牌、第一目标方案标识与第三目标方案标识。相应地,在操作202中,具体可以从对应关系表中获取第一目标方案标识与第三目标方案标识对应的过期时间信息。响应于从对应关系表中获取到第一目标方案标识与第三目标方案标识对应的过期时间信息,在操作203中,基于第一目标方案标识与第三目标方案标识对应的过期时间信息确认第一目标算法相关方案与第一目标数据结构方案是否过期。响应于第一目标算法相关方案与第一目标数据结构方案未过期,开始执行操作204,基于第一目标算法相关方案对令牌进行处理,得到处理结果。

可选地,在其中一些实现方式中,操作101之前,还可以基于预设数据结构方案和预设算法相关方案生成用于生成令牌的总代码。例如,基于预设数据结构方案对应的子代码、以及预设算法相关方案中各算法方案对应的子代码,生成用于生成令牌的总代码。

可选地,在其中一些实现方式中,还可以预先设置预设数据结构方案对应的子代码,或者,进一步对该预设数据结构方案对应的子代码进行更新。

可选地,在上述任一实施例中,所述数据结构方案包括数据存储位置方案,该数据存储位置方案用于确定参与生成令牌的各字段在令牌的数据结构中的位置。其中,参与生成令牌的字段例如可以包括但不限于以下有效字段:令牌版本号、令牌标识、令牌类型、令牌来源、令牌属性、客户端当前时间、至少一个预设可选数据等等。数据存储位置方案存在多个候选方案。在不同数据存储位置方案中,参与生成令牌的各字段在令牌的数据结构中的位置不同或不完全相同,甚至同一个字段在令牌的数据结构中的位置都不同。相应地,第四目标方案标识包括目标数据存储位置方案的子方案标识,目标总代码包括目标数据存储位置方案对应的子代码。

服务端接收到客户端发送的请求内容、令牌、第一目标方案标识与第三目标方案标识后,基于该第三目标方案标识中目标数据存储位置方案的子方案标识所标识的目标数据存储位置方案,服务端可以确定各字段在令牌的数据结构中的位置,从而从相应的位置提取各字段的具体信息(即赋值)。

例如,在一个具体示例中,以参与生成令牌的字段包括令牌版本号、令牌ID、令牌类型、令牌来源、令牌属性、client当前时间、…为例,在如下不同数据存储位置方案中,各字段在令牌的数据结构中的位置如下:

数据存储位置方案1:data[0]=令牌版本号,data[1]=令牌ID,data[2]=令牌类型,data[3]=令牌来源,data[4]=令牌属性,data[5]=client当前时间,…;

数据存储位置方案2:data[0]=令牌ID,data[1]=令牌版本号,data[2]=令牌类型,data[3]=client当前时间,data[4]=令牌属性,data[5]=令牌来源,…;

数据存储位置方案3:data[0]=client当前时间,data[1]=令牌来源,data[2]=令牌ID,data[3]=令牌类型,data[4]=令牌属性,data[5]=令牌版本号,…;

数据存储位置方案N:…

其中,data[]表示各字段在令牌的数据结构中的第几个位置,例如data[0]=令牌版本号,表示字段“令牌版本号”在令牌的数据结构中的第0个位置,data[1]=令牌ID表示字段“令牌ID”在令牌的数据结构中的第1个位置,…,以此类推。根据应用的业务,可选数据可以包括用户的输入数据、鼠标移动数据、键盘输入的统计数据、环境相关数据(例如窗口大小、当前操作系统、CPU型号等)。

可选地,在其中一些实现方式中,所述数据结构方案还可以包括插入冗余数据方案,该插入冗余数据方案为向令牌的数据结构中插入冗余数据的方案,插入冗余数据方案存在多个候选方案。其中,每个插入冗余数据方案可以包括:插入无效字段的数量、各无效字段在令牌的数据结构中的位置、以及赋值给各无效字段的冗余数据。根据插入冗余数据方案,可以向参与生成令牌的字段中的不同位置(例如向令牌的数据结构中的第几个位置之前或之后)插入不同数量的无效字段的冗余数据。相应地,第四目标方案标识还包括目标插入冗余数据方案的子方案标识,目标总代码还包括目标插入冗余数据方案对应的子代码。

为便于区分,本申请实施例中,可以将参与生成令牌的字段可以分为有效字段和无效字段,其中的有效字段为预设规则中令牌需要包括的字段,例如令牌版本号、令牌ID、令牌类型、令牌来源、令牌属性、client当前时间、以及一些可选数据,这些有效字段的具体信息(即赋值)可以称为有效数据;无效字段为除了基于上述预设规则规定的有效字段外,基于本申请实施中插入的、用于增加生成令牌的代码被攻击者逆向分析的难度、提高令牌的安全性的字段,这些无效字段的具体信息(即赋值)可以称为冗余数据(即无效数据)。

基于第三目标方案标识对应的第一目标数据结构方案中的目标数据存储位置方案和目标插入冗余数据方案,服务端可以确定各有效字段在令牌的数据结构中的具体位置,从而从相应的位置提取各有效字段的具体信息;并可以通过比较该目标插入冗余数据方案中各位置的冗余数据与客户端返回的令牌中对应位置的冗余数据是否一致,来检测服务端发送给客户端的总代码是否被逆向、篡改。

例如,在一个具体示例中,可以提供如下插入冗余数据方案作为候选方案:

插入冗余数据方案1:data[0]=随机数,data[1]=随机数,data[2]=随机数,data[3]=随机数,data[4]=令牌版本号,data[5]=令牌ID,data[6]=令牌类型,data[7]=令牌来源,data[8]=令牌属性,data[9]=client当前时间,…;

插入冗余数据方案2:data[0]=令牌ID,data[1]=令牌版本号,data[2]=令牌类型,data[3]=client当前时间,data[4]=令牌属性,data[5]=令牌来源,data[6]=随机数,data[7]=随机数,data[8]=随机数,…;

插入冗余数据方案3:data[0]=client当前时间,data[1]=随机数,data[2]=令牌来源,data[3]=随机数,data[4]=令牌ID,data[5]=令牌类型,data[6]=随机数,data[7]=令牌属性,data[8]=令牌版本号,…;

插入冗余数据方案N:…

其中的随机数可以由服务端根据预设规则选取,例如可以选取一个大于0且小于255的整数作为随机数,其中不同位置的随机数可以部分或全部相同,也可以不同。

其中的随机数可以由服务端根据预设规则设置,例如可以设置为大于0且小于255的一个整数。

服务端接收到客户端发送的请求内容、令牌、第一目标方案标识与第三目标方案标识后,基于该第三目标方案标识中目标数据存储位置方案的子方案标识和目标插入冗余数据方案的子方案标识所标识的目标数据存储位置方案和目标插入冗余数据方案,可以确定各有效字段在令牌的数据结构中的具体位置,仅从令牌中的相应位置提取有效数据(即除冗余数据外其他各有效字段的具体信息或赋值);另外,还可以通过比较该目标插入冗余数据方案中各位置的冗余数据与客户端返回的令牌中对应位置的冗余数据是否一致,来检测发送给客户端的总代码是否被篡改,或者,基于上述预设规则设置,若在令牌中各无效字段位置处的数值为0或255时,可以直接确定发送给客户端的总代码被篡改。

可选地,在其中一些实现方式中,在数据结构方案包括数据存储位置方案和插入冗余数据方案时,在操作205中,具体可以在根据目标插入冗余数据方案确定发送给客户端的目标总代码未被篡改时,基于该第三目标方案标识中目标数据存储位置方案的子方案标识和目标插入冗余数据方案的子方案标识所标识的目标数据存储位置方案和目标插入冗余数据方案,分别从处理结果中各有效字段的位置提取各有效字段的赋值。

可选地,在其中一些实现方式中,在操作101中,可以按照预设周期,从数据存储位置方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的数据存储位置方案;若数据结构方案还包括插入冗余数据方案,则可以从插入冗余数据方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的插入冗余数据方案。

基于本实施例,可以周期性调整数据存储位置方案和插入冗余数据方案并据此生成用于生成令牌的目标总代码,不仅大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌,还可以使客户端生成的令牌的数据结构周期性动态变化,从而提高了令牌的安全性。

可选地,在其中一些实现方式中,所述数据结构方案还可以包括数据隐藏方案,该数据隐藏方案为对参与生成令牌的全部字段或预设部分字段进行隐藏的方案。每个数据隐藏方案包括:隐藏字段和隐藏字段对应的隐藏方式,其中的隐藏字段为需要隐藏的字段,可以针对全部字段,也可以针对其中的某个或某几个字段,可以根据具体需求确定。每个数据隐藏方案针对的隐藏字段的数量可以与有效字段和无效字段的总数量一致或不一致,本申请实施例对此不做限制。例如,在具体实现中,在数据隐藏方案针对参与生成令牌的预设某些字段时,若隐藏字段的数量大于有效字段和无效字段的总数量,可以仅针对隐藏字段涉及的有效字段和无效字段进行隐藏处理;若隐藏字段的数量小于有效字段和无效字段的总数量时,可以仅针对有效字段和无效字段中对应的隐藏字段进行隐藏处理。相应地,第四目标数据结构方案还包括目标数据隐藏方案,第四目标方案标识还包括目标数据隐藏方案的子方案标识,目标总代码还包括目标数据隐藏方案对应的子代码。

通过数据隐藏方案,可以对参与生成令牌的各隐藏字段,基于各隐藏字段对应的数据隐藏方式进行隐藏操作(例如加解密、编解码、取反、异或、移位等)处理以隐藏各隐藏字段的具体信息(即赋值)的方案。服务端收到客户端发送的令牌后,基于该第三目标方案标识中目标数据隐藏方案的子方案标识所标识的目标数据隐藏方案,可以采用相应的还原操作对隐藏字段进行还原,从而得到各隐藏字段的具体信息。

如下表1所示,为本申请实施例中数据隐藏方案可选的数据隐藏方式、以及各数据隐藏方式对应的隐藏操作、还原操作和适用于作为隐藏字段的适用范围(即可作为隐藏字段的数据形式)。

表1

例如,在一个具体示例中,以上述插入冗余数据方案1为例,对应的数据隐藏方案的几个候选方案可以是:

数据隐藏方案1:data[0]=随机数^0x11,data[1]=随机数^0x22,data[2]=随机数^0x33,data[3]=随机数^0x44,data[4]=令牌版本号^0x55,data[5]=令牌ID^0x66,data[6]=令牌类型^0x77,data[7]=令牌来源^0x88,data[8]=令牌属性^0x99,data[9]=client当前时间^0xAA,…

还原操作:令牌版本号=data[4]^0x55,令牌ID=data[5]^0x66,令牌类型=data[6]^0x77,令牌来源=data[7]^0x88,令牌属性=data[8]^0x99,client当前时间=data[9]^0xAA,…

数据隐藏方案2:data[0]=随机数+0x11,data[1]=随机数+0x22,data[2]=随机数+0x33,data[3]=随机数+0x44,data[4]=令牌版本号+0x55,data[5]=令牌ID+0x66,data[6]=令牌类型+0x77,data[7]=令牌来源+0x88,data[8]=令牌属性+0x99,data[9]=client当前时间+0xAA,…

还原操作:令牌版本号=data[4]-0x55,令牌ID=data[5]-0x66,令牌类型=data[6]-0x77,令牌来源=data[7]-0x88,令牌属性=data[8]-0x99,client当前时间=data[9]-0xAA,…

数据隐藏方案3:data[0]=随机数^0x11,data[1]=随机数+0x22,data[2]=随机数<<1,data[3]=随机数^0xFF,data[4]=~令牌版本号,data[5]=令牌ID^0x66,data[6]=令牌类型+0x77,data[7]=令牌来源<<2,data[8]=令牌属性^0x99,data[9]=~client当前时间,…

还原操作:令牌版本号=~data[4],令牌ID=data[5]^0x66,令牌类型=data[6]-0x77,令牌来源=data[7]>>2,令牌属性=data[8]^0x99,client当前时间=~data[9],…

数据隐藏方案N:…

其中,数据隐藏方案1中,数据隐藏方式为异或(异或运算符^)。数据隐藏方案2中,数据隐藏方式为加法(加上运算符+、减去运算符-)。数据隐藏方案3中,数据隐藏方式同时包括了异或(异或运算符^)、加法(加上运算符+、减去运算符-)、移位(左移运算符<<、右移运算符>>)、取反(取反运算符~)。在实际应用中,数据隐藏方案可以单独或组合使用上述各种数据隐藏方式。

在数据结构方案包括数据隐藏方案的情况下,在其中一些实现方式中,在操作205中,可以先根据第三目标方案标识中目标数据隐藏方案的子标识所标识的目标数据隐藏方案中的目标隐藏字段和该目标隐藏字段对应的数据隐藏方式,分别对处理结果中的目标隐藏字段进行该目标隐藏字段对应的隐藏方式对应的还原操作,得到还原结果;然后,再根据目标插入冗余数据方案确定发送给客户端的目标总代码未被篡改时,基于第三目标方案标识中目标数据存储位置方案的子方案标识和目标插入冗余数据方案的子方案标识所标识的目标数据存储位置方案和目标插入冗余数据方案,分别从还原结果中各有效字段的位置提取各有效字段的赋值。

可选地,在其中一些实现方式中,在操作101中,若数据结构方案包括数据隐藏方案,还可以按照预设周期,从数据隐藏方案对应的候选方案中依序或随机选取一个候选方案作为当前周期内的数据隐藏方案。

在上述实现方式中,数据结构方案包括数据存储位置方案、插入冗余数据方案和数据隐藏方案时,第二目标数据结构方案中可以包括目标数据存储位置方案、目标插入冗余数据方案和目标数据隐藏方案,相应地,第四目标方案标识包括目标数据存储位置方案的子方案标识、目标插入冗余数据方案的子方案标识和目标数据隐藏方案的子方案标识,其中的子方案标识用于唯一标识一个子方案。

基于本实施例,可以采用不同的数据存储位置方案、插入冗余数据方案和数据隐藏方案组合,对生成令牌的数据结构进行周期性的动态调整,从而使得生成的令牌可以进一步具有动态变化的数据结构,进一步提了高令牌的安全性。

可选地,数据结构方案包括数据存储位置方案、插入冗余数据方案和数据隐藏方案时,在其中一些实现方式中,在操作101中,可以按照预设周期,调整用于确定令牌的数据结构的数据结构方案,具体来说,可以从数据存储位置方案的候选方案中依序或随机选取一个候选方案作为当前周期内的数据存储位置方案;从插入冗余数据方案的候选方案中依序或随机选取一个候选方案作为当前周期内的插入冗余数据方案;从数据隐藏方案的候选方案中依序或随机选取一个候选方案作为当前周期内的数据隐藏方案。

可选地,在其中一些实现方式中,可以预先设置数据存储位置方案、插入冗余数据方案和数据隐藏方案的候选方案、以及各候选方案对应的子代码;或者,还可以进一步对数据存储位置方案、插入冗余数据方案和数据隐藏方案的候选方案的候选方案、以及各候选方案对应的子代码进行更新。

可选地,在其中一些实现方式中,在操作102中,可以获取当前周期内的数据结构方案作为第二目标数据结构方案,包括目标数据存储位置方案、目标插入冗余数据方案和目标数据隐藏方案,之后,可以分别从预先设置的数据存储位置方案、插入冗余数据方案和数据隐藏方案的候选方案、以及各候选方案对应的子代码中,获取目标数据存储位置方案、目标插入冗余数据方案和目标数据隐藏方案对应的子代码。

基于本实施例,可以周期性调整数据结构方案中数据存储位置方案、插入冗余数据方案和数据隐藏方案的候选方案对应的目标数据存储位置方案、目标插入冗余数据方案和目标数据隐藏方案及其对应的子代码,从而使得参与生成令牌的数据结构方案和总代码周期性的动态变化,进一步增加了生成令牌的总代码被攻击者逆向分析的难度,有效防止生成令牌的总代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌。

可选地,在其中一些实现方式中,在上述任一实施例的操作105中,具体可以将目标总代码、第二目标方案标识、以及预先获取的客户端密钥发送给客户端,其中的客户端密钥用于客户端加密令牌。其中的客户端密钥可以由服务端按照预设方式生成,例如随机生成或者采用预设算法生成,本申请实施例对此不做限制。

其中的客户端密钥为固定的密钥,也可以为按照预设周期变化的密钥,或者还可以是针对每个客户端临时生成的密钥。若客户端密钥为固定的密钥,服务端统一保持该密钥即可。若客户端密钥为按照预设周期变化的密钥,则服务端可以记录各周期内的客户端密钥,从而基于当前时刻所属周期可以确定对应的客户端密钥。若客户端密钥为针对每个客户端临时生成的密钥,则服务端将目标总代码、第二目标方案标识、以及预先获取的客户端密钥发送给客户端时,可以记录客户端密钥与该客户端的客户端标识(ID)之间的对应关系,从而基于该对应关系可以确定发送给该客户端的客户端密钥,其中的客户端ID用于唯一标识一个客户端。

相应地,在操作201中,具体可以接收到客户端发送的请求内容、加密的令牌、以及第一目标方案标识。相应地,在操作204之前,可以先获取对应的客户端密钥,然后利用该客户端密钥对加密的令牌进行解密,得到令牌。然后,再通过操作204,基于第一目标算法相关方案对该令牌进行处理,得到处理结果。

基于本实施例,服务端向客户端发送目标总代码、第二目标方案标识时同时发送客户端密钥,这样,客户端生成令牌后,可以直接利用该客户端密钥对令牌进行加密,有助于提高令牌的保密性和安全性。

可选地,在其中一些实现方式中,在操作105中,可以利用预设加密算法和保密的服务端密钥(server key)对第二目标方案标识进行加密,若同时发送第四目标方案标识,则对第二目标方案标识和第四目标方案标识进行加密,得到第一标识加密信息,然后将目标总代码与第一标识加密信息发送给客户端。其中的服务端密钥可以由服务端按照预设方式生成,例如随机生成或者采用预设算法生成,本申请实施例对此不做限制。

其中的预设加密算法可以为加密强度较高的加密算法,例如AES256或加密强度不低于AES256的其他加密算法。该预设加密算法和保密的服务端密钥仅保存在服务端,不会扩散,也不会传递给客户端,以提高发送给客户端的目标方案标识的保密性和安全性。

相应地,在操作201中,具体为接收到客户端发送的请求内容、令牌、以及第二标识加密信息。在操作201之后,还可以利用预设加密算法和服务端密钥,对第二标识加密信息进行解密,响应于解密得到第一目标方案标识、或者第一目标方案标识与第三目标方案标识,开始执行操作202;否则,若未解密得到第一目标方案标识、或者第一目标方案标识与第三目标方案标识,说明客户端发送的第二标识加密信息并非之前服务端发送给客户端的第一标识加密信息,则说明服务端发送给客户端的加密的第一标识加密信息可能被篡改或者为伪造信息,不执行操作202及其后续流程,或者进一步向客户端反馈需要进行身份认证的响应消息。

基于本实施例,服务端利用预设加密算法和保密的服务端密钥对第二目标方案标识、或者第二目标方案标识和第四目标方案标识进行加密后再发送给客户端,由于预设加密算法和保密的服务端密钥仅保存在服务端,只有服务端可以知晓,能够提高第二目标方案标识、或者第二目标方案标识和第四目标方案标识的保密性和安全性。

图3为本申请又一实施例提供的令牌生成方法的流程示意图。该实施例应用于客户端,如图3所示。

301,接收服务端发送的目标总代码与第一目标方案标识。

其中,第一目标方案标识用于标识第一目标算法相关方案,该第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,其中的算法相关方案包括编码算法方案、加密算法方案和效验算法方案,述编码算法方案、加密算法方案和效验算法方案分别存在多个候选方案。第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案。目标总代码中包括第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案分别对应的子代码。

302,通过执行目标总代码,基于第一目标算法相关方案对各字段的赋值信息进行相应处理,得到令牌,该令牌包括基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理得到的数据。

303,将请求内容、令牌与第一目标方案标识发送给服务端。

其中的请求内容为客户端请求服务端处理的内容,例如,请求内容可以是网络数据访问请求、系统资源访问请求、用户个人信息的更新请求等等,本公开实施对请求内容对应的具体业务类型和具体内容不做限制。

客户端接收到服务端发送的目标总代码与第一目标方案标识,每次向服务端发送请求内容前都基于最近一次接收到的目标总代码生成令牌,然后将请求内容、令牌与第一目标方案标识一起发送给服务端。

这样,由于服务端下发给客户端、用于生成令牌的代码按照预设周期动态变化,这样客户端生成的令牌也动态变化,大大增加了生成令牌的代码被攻击者逆向分析的难度,有效防止生成令牌的代码被攻击者逆向分析,从而使得攻击者无法将生成令牌的代码整合到自动化工具中自动生成令牌,从而提高了令牌的安全性。另外,由于动态调整参与生成令牌的算法相关方案且下发给客户端的目标算法相关方案都具有相应的过期时间,即使攻击者花费大量的时间逆向分析出某次用于生成令牌的代码中的部分代码,这部分代码已经过期从而失效,将其整合到自动化工具中自动生成令牌已毫无任何意义,从而提高了令牌的安全性。另外,可以避免攻击者使用自动化工具采用逆向分析出的代码自动生成令牌访问网络数据和系统资源、或者进一步对网络数据和系统资源进行篡改或者植入病毒,有效保障网络数据和系统资源的安全性。

可选地,在其中一些实现方式中,在操作302中,可以通过执行目标总代码,分别对参与生成令牌的各字段进行赋值,然后,通过依次执行目标总代码中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码,依次对令牌进行校验、加密和解码处理,得到令牌。

可选地,在其中一些实现方式中,所述目标总代码为基于第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码更新用于生成令牌的总代码得到。其中,所述用于生成令牌的总代码基于预先设置的数据结构方案对应的子代码和预先设置的算法相关方案中各算法方案对应的子代码生成,其中的数据结构方案用于确定令牌的数据结构。数据结构方案为参与生成令牌的各部分数据(即字段)在令牌中的数据结构(例如位置、隐藏方式等)的方案。

可选地,在其中一些实现方式中,所述目标总代码中包括的数据结构方案对应的子代码为预先设置的数据结构方案对应的子代码。

或者,在另一些实现方式中,在操作301中,具体为接收到服务端发送的目标总代码、第一目标方案标识与第三目标方案标识;其中,第三目标方案标识用于标识第一目标数据结构方案,该第一目标数据结构方案为按照预设周期调整数据结构方案,从数据结构方案存在的多个候选方案中确定的当前周期内的数据结构方案。相应的,所述目标总代码中还包括第一目标数据结构方案对应的子代码。

可选地,在其中一些实现方式中,所述数据结构方案包括数据存储位置方案,该数据存储位置方案用于确定参与生成令牌的各字段在令牌的数据结构中的位置,数据存储位置方案存在多个候选方案。在不同数据存储位置方案中,参与生成令牌的各字段在令牌的数据结构中的位置不同或不完全相同,甚至同一个字段在令牌的数据结构中的位置都不同,具体可以参见上述实施例的记载,此处不再赘述。

进一步可选地,所述数据结构方案还可以包括插入冗余数据方案,该插入冗余数据方案为向令牌的数据结构中插入冗余数据的方案,插入冗余数据方案存在多个候选方案。其中,每个插入冗余数据方案可以包括:插入无效字段的数量、各无效字段在令牌的数据结构中的位置、以及赋值给各无效字段的冗余数据。根据插入冗余数据方案,可以向参与生成令牌的字段中的不同位置(例如向令牌的数据结构中的第几个位置之前或之后)插入不同数量的无效字段的冗余数据,具体可以参见上述实施例的记载,此处不再赘述。

相应地,在操作302中,具体可以通过执行目标总代码中数据结构方案对应的子代码,分别对参与生成令牌的各有效字段进行赋值。

进一步可选地,所述数据结构方案还可以包括数据隐藏方案,该数据隐藏方案为对参与生成令牌的全部字段或预设某些字段进行隐藏的方案。每个数据隐藏方案包括:隐藏字段和隐藏字段对应的隐藏方式,其中的隐藏字段为需要隐藏的字段,可以针对全部字段,也可以针对其中的某个或某几个字段,可以根据具体需求确定,具体可以参见上述实施例的记载,此处不再赘述。

相应地,在操作302中,分别对参与生成令牌的各有效字段进行赋值之后,还可以根据目标总代码中数据隐藏方案中的目标隐藏字段和目标隐藏字段对应的数据隐藏方式,分别对各字段的赋值信息中目标隐藏字段的赋值信息采用该目标隐藏字段对应的数据隐藏方式进行隐藏操作处理,得到隐藏结果,然后,基于第一目标算法相关方案对隐藏结果进行相应处理,例如,基于第一目标算法相关方案中的目标效验算法方案目标加密算法方案和目标编码算法方案,对隐藏结果或者包括该隐藏结果的指定信息(全部信息或其中部分指定信息)进行校验处理、加密处理和编码处理,得到令牌。

其中,关于数据结构方案及其按照预设周期调整的具体实现方式,以及数据存储位置方案、插入冗余数据方案和数据隐藏方案的具体内容和实现方式,可以参考本公开上述实施例的相关记载,不再赘述。

可选地,在其中一些实现方式中,在操作301中,具体为接收到服务端发送的目标总代码、第一目标方案标识与客户端密钥。相应地,通过操作302得到令牌之后,还可以利用该客户端密钥对该令牌进行加密,得到加密的令牌;然后,在操作303中,可以将请求内容、加密的令牌与第一目标方案标识发送给服务端。

可选地,在其中一些实现方式中,在执行本申请实施例之前,服务端与客户端之间可以采用预设方式,例如,传输层安全(Transport Layer Security,TLS)或类似方式,进行双向认证,以确保用于生成令牌的目标总代码与第二目标方案标识可以发送给合法的客户端,从而提高数据的安全性。

以下以一个具体应用为例,对本申请实施例令牌生成方法进行进一步说明:

S1,服务端按照预设周期,调整参与生成令牌的算法相关方案和令牌的数据结构方案。

其中,算法相关方案包括编码算法方案、加密算法方案和效验算法方案;编码算法方案、加密算法方案、效验算法方案和数据结构方案分别存在多个候选方案。

S2,响应于达到预设触发条件,服务端获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取第二目标算法相关方案的方案标识作为第二目标方案标识,以及获取当前周期内的数据结构方案作为第二目标数据结构方案,并获取第二目标数据结构方案的方案标识作为第四目标方案标识。

其中,第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;每个方案标识用于标识一个算法相关方案,方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识;第二目标方案标识用于标识第二目标算法相关方案,第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识。第四目标方案标识用于标识第二目标数据结构方案。

S3,服务端在对应关系表中记录第二目标方案标识、第四目标方案标识、以及第二目标算法相关方案与第二目标数据结构方案的过期时间信息之间的对应关系。

S4,服务端基于第二目标算法相关方案对应的子代码和第二目标数据结构方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,目标总代码中包括目标编码算法方案对应的子代码、目标加密算法方案对应的子代码、目标效验算法方案对应的子代码和第二目标数据结构方案对应的子代码。

S5,服务端将目标总代码、第二目标方案标识与第四目标方案标识、以及预先获取的客户端密钥发送给客户端。

S6,客户端接收服务端发送的目标总代码、第一目标方案标识与第三目标方案标识、以及客户端密钥。

其中,第一目标方案标识用于标识第一目标算法相关方案,第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,算法相关方案包括编码算法方案、加密算法方案和效验算法方案;编码算法方案、加密算法方案和效验算法方案分别存在多个候选方案;第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;目标总代码中包括第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码。

此时,根据服务端发送的第二目标方案标识与第四目标方案标识是否被篡改,客户端接收到的第一目标方案标识与第二目标方案标识即为服务端发送的第二目标方案标识与第四目标方案标识对应不同或相同。若服务端发送的第二目标方案标识与第四目标方案标识未被篡改,客户端接收到的第一目标方案标识与第二目标方案标识即为服务端发送的第二目标方案标识与第四目标方案标识,第一目标算法相关方案即为第二目标算法相关方案,第一目标数据结构方案即为第二目标数据结构方案;否则,若服务端发送的第二目标方案标识与第四目标方案标识被篡改,客户端接收到的第一目标方案标识与第二目标方案标识便不再是服务端发送的第二目标方案标识与第四目标方案标识,第一目标算法相关方案不同于第二目标算法相关方案,第一目标数据结构方案也不同于第二目标数据结构方案。

S7,客户端接通过执行目标总代码,基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理,得到令牌。

例如,在一个实现方式中,客户端通过执行目标总代码中目标数据结构方案对应的子代码,向相应位置传入有效数据,其中可能执行目标数据隐藏方案对应的子代码对有效数据和目标总代码中的无效数据进行一些相应的数据隐藏操作;然后,按照目标总代码中目标效验算法方案、目标加密算法方案、目标执行编码算法方案的子代码执行顺序,通过执行目标效验算法方案、目标加密算法方案、目标执行编码算法方案的子代码进行相应的校验、加密、编码。如此,客户端生成的便是具有第一目标数据结构方案确定的数据结构并基于第一目标算法相关方案处理后的令牌。

S8,客户端利用客户端密钥对令牌进行加密,得到加密的令牌。

S9,客户端将请求内容、加密的令牌、第一目标方案标识与第三目标方案标识发送给服务端。

S10,响应于接收到客户端发送的请求内容、加密的令牌、第一目标方案标识与第三目标方案标识,服务端从对应关系表中获取第一目标方案标识与第三目标方案标识对应的过期时间信息。

S11,响应于从对应关系表中获取到第一目标方案标识与第三目标方案标识对应的过期时间信息,服务端基于该过期时间信息确认第一目标算法相关方案与第一目标数据结构方案是否过期。

否则,若未获取到第一目标方案标识与第三目标方案标识对应的过期时间信息,表示第一目标方案标识和/或第三目标方案标识不存在,不执行后续流程。

S12,响应于第一目标算法相关方案与第一目标数据结构方案未过期,服务端利用客户端密钥对加密的令牌进行解密,得到令牌。

否则,若第一目标算法相关方案与第一目标数据结构方案已过期,不再进行后续流程。

S13,服务端分别基于第一目标算法相关方案中的目标编码算法方案、目标加密算法方案和目标效验算法方案,对令牌进行解码、解密和校验处理,得到处理结果。

S14,服务端基于第三目标方案标识对应的目标数据结构方案,从处理结果中获取有效数据。

例如,在一个实现方式中,服务端基于第一目标方案标识包括的目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识,可以知道本次生成令牌所采用的目标编码算法方案、目标加密算法方案、目标效验算法方案,根据目标编码算法方案采用对应的解码算法来解码数据,根据目标加密算法方案采用对应的解密算法来解密数据,根据目标效验算法方案采用对应的效验算法来效验数据;基于第三目标方案标识中目标数据存储位置方案的子方案标识、目标插入冗余数据方案的子方案标识、目标数据隐藏方案的子方案标识,可以知道本次生成的令牌的目标数据存储位置方案、目标插入冗余数据方案、目标数据隐藏方案,可以根据目标数据隐藏方案采用相应的还原操作对隐藏字段进行还原,从而得到各隐藏字段的具体信息,根据目标插入冗余数据方案删除冗余数据,根据目标数据存储位置方案找到有效数据的存储位置提取有效数据。

S15,响应于从处理结果中获取到有效数据,服务端对请求内容进行处理。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

图4为本申请一实施例提供的令牌生成装置的结构示意图。该实施例的令牌生成装置应用于服务端,可用于实现本申请上述服务端实现的各令牌生成方法实施例。如图4所示,该实施例的令牌生成装置包括:调整模块401、获取模块402、记录模块403、更新模块404和第二发送模块405。其中:

调整模块401,用于按照预设周期,调整参与生成令牌的算法相关方案;其中,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案。

获取模块402,用于响应于达到预设触发条件,获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取所述第二目标算法相关方案的方案标识作为第二目标方案标识;其中,所述第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;每个方案标识用于标识一个算法相关方案,所述方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识;所述第二目标方案标识用于标识所述第二目标算法相关方案,所述第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识。

记录模块403,用于在对应关系表中记录所述第二目标方案标识与所述第二目标算法相关方案的过期时间信息之间的对应关系。

更新模块404,用于基于所述第二目标算法相关方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,所述目标总代码中包括所述目标编码算法方案对应的子代码、所述目标加密算法方案对应的子代码和所述目标效验算法方案对应的子代码。

第二发送模块405,用于将所述目标总代码与所述第二目标方案标识发送给客户端,以便所述客户端通过执行所述目标总代码、生成基于所述第二目标算法相关方案处理后的令牌。

本实施例令牌生成装置中各模块的详细实现和具体实行的操作,可以参见本申请上述服务端实现的各令牌生成方法实施例,不再赘述。

图5为本申请另一实施例提供的令牌生成装置的结构示意图。该实施例的令牌生成装置应用于客户端,可用于实现本申请上述客户端实现的各令牌生成方法实施例。如图5所示,该实施例的令牌生成装置包括:接收模块501、生成模块502和第一发送模块503。其中:

接收模块501,用于接收服务端发送的目标总代码与第一目标方案标识;其中,所述第一目标方案标识用于标识第一目标算法相关方案,所述第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;所述第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;所述目标总代码中包括所述第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码。

生成模块502,用于通过执行所述目标总代码,基于所述第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理,得到令牌,该令牌包括基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理得到的数据。

第一发送模块503,用于将请求内容、所述令牌与所述第一目标方案标识发送给所述服务端。

本实施例令牌生成装置中各模块的详细实现和具体实行的操作,可以参见本申请上述客户端端实现的各令牌生成方法实施例,不再赘述。

图6为本申请一实施例提供的令牌生成系统的结构示意图。该实施例的令牌生成系统可用于实现本申请上述各实施例的令牌生成方法。如图6所示,该实施例的令牌生成系统包括:服务端601和客户端602。其中:

服务端601,用于按照预设周期,调整参与生成令牌的算法相关方案;其中,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;响应于达到预设触发条件,获取当前周期内的算法相关方案作为第二目标算法相关方案,并获取所述第二目标算法相关方案的方案标识作为第二目标方案标识;其中,所述第二目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;每个方案标识用于标识一个算法相关方案,所述方案标识包括编码算法方案的算法标识、加密算法方案的算法标识和效验算法方案的算法标识;所述第二目标方案标识用于标识所述第二目标算法相关方案,所述第二目标方案标识包括目标编码算法方案的算法标识、目标加密算法方案的算法标识和目标效验算法方案的算法标识;在对应关系表中记录所述第二目标方案标识与所述第二目标算法相关方案的过期时间信息之间的对应关系;基于所述第二目标算法相关方案对应的子代码更新用于生成令牌的总代码,得到当前周期内用于生成令牌的目标总代码,所述目标总代码中包括所述目标编码算法方案对应的子代码、所述目标加密算法方案对应的子代码和所述目标效验算法方案对应的子代码;将所述目标总代码与所述第二目标方案标识发送给客户端602,以便客户端602通过执行所述目标总代码、生成基于所述第二目标算法相关方案处理后的令牌。

客户端602,用于接收服务端601发送的目标总代码与第一目标方案标识;其中,所述第一目标方案标识用于标识第一目标算法相关方案,所述第一目标算法相关方案为服务端按照预设周期调整参与生成令牌的算法相关方案得到的当前周期内的算法相关方案,所述算法相关方案包括编码算法方案、加密算法方案和效验算法方案;所述编码算法方案、所述加密算法方案和所述效验算法方案分别存在多个候选方案;所述第一目标算法相关方案包括目标编码算法方案、目标加密算法方案和目标效验算法方案;所述目标总代码中包括所述第一目标算法相关方案中目标编码算法方案对应的子代码、目标加密算法方案对应的子代码和目标效验算法方案对应的子代码;通过执行所述目标总代码,基于所述第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理,得到令牌,该令牌包括基于第一目标算法相关方案对参与生成令牌的字段的赋值信息进行相应处理得到的数据;将请求内容、所述令牌与所述第一目标方案标识发送给所述服务端601。

本申请实施例中,服务端601和客户端602的具体实现,可以参考本申请上述各相应实施例令牌生成方法的装置,此处不再赘述。

另外,本申请实施例还提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请上述任一实施例所述的令牌生成方法。

另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请上述任一实施例所述的令牌生成方法。

图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如Webshell文件的检测方法。例如,在一些实施例中,Webshell文件的检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的Webshell文件的检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行Webshell文件的检测方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 类文件生成方法、装置、电子设备及存储介质
  • 无人机迁移轨迹生成方法、装置、电子设备和存储介质
  • 视频摘要生成方法、装置、存储介质和电子设备
  • 网页生成方法、装置、电子设备及计算机可读存储介质
  • 视频生成、视频播放方法、装置、电子设备及存储介质
  • 令牌生成令牌方法和装置、电子设备及存储介质
  • 令牌生成方法和装置、电子设备及存储介质
技术分类

06120115938560