CN109660343B - 令牌更新方法、装置、计算机设备及存储介质 - Google Patents

令牌更新方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109660343B
CN109660343B CN201910042783.2A CN201910042783A CN109660343B CN 109660343 B CN109660343 B CN 109660343B CN 201910042783 A CN201910042783 A CN 201910042783A CN 109660343 B CN109660343 B CN 109660343B
Authority
CN
China
Prior art keywords
token
client
service
user
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910042783.2A
Other languages
English (en)
Other versions
CN109660343A (zh
Inventor
张中楫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910042783.2A priority Critical patent/CN109660343B/zh
Publication of CN109660343A publication Critical patent/CN109660343A/zh
Application granted granted Critical
Publication of CN109660343B publication Critical patent/CN109660343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种令牌更新方法、装置、计算机设备及存储介质,其中,该令牌更新方法包括客户端执行的如下步骤:向服务器发送携带用户ID和用户验证码的登录请求;获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则;基于历史客户令牌和令牌生成规则,获取当前客户令牌;基于当前客户令牌形成业务请求;将业务请求发送给服务器,以使服务器基于用户ID对应的令牌验证次数对当前客户令牌进行验证。该方法避免服务器接收到业务请求时重新对客户端进行身份验证或生成新的令牌浪费时间,通过令牌生成规则可有效保障生成令牌的持续性和保密性。

Description

令牌更新方法、装置、计算机设备及存储介质
技术领域
本发明涉及网络安全领域,尤其涉及一种令牌更新方法、装置、计算机设备及存储介质。
背景技术
现有token(也称令牌)验证机制的实现过程如下:用户发出登录请求,带着用户名和密码到服务器经行验证,服务器验证成功就在后台生成令牌返回给客户端,客户端把这个令牌储存起来(浏览器可以存储到Cookie中,服务端可以存放到Session、数据库或Redis等),还可以给token设置存储令牌的有效期。后续每次操作客户端都需要带着令牌向服务器发出请求,服务器会对令牌进行身份验证,验证成功则允许继续操作,若验证不成功就返回到登录界面。
采用token机制对用户进行身份验证,利于提高用户登录服务器的便利性,但同时也带来问题:当token在有效期后失效,则客户端需要服务器重新进行身份验证,且只有验证通过后服务器才能生成新的令牌发送给客户端,造成正在进行任务的中断甚至更严重的后果。如何提高令牌验证机制的可持续性成为亟待解决的问题。
发明内容
本发明实施例提供一种令牌更新方法、装置、计算机设备及存储介质,以解决提高令牌验证机制的可持续性问题。
一种令牌更新方法,应用于客户端,包括:
向服务器发送携带用户ID和用户验证码的登录请求,以使服务器基于用户ID和用户验证码对客户端进行身份验证;
获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则,将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存;
基于历史客户令牌和令牌生成规则,获取当前客户令牌;
基于当前客户令牌形成业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
将业务请求发送给服务器。
一种令牌更新装置,应用于客户端,客户端包括:
发送登陆请求模块,用于向服务器发送携带用户ID和用户验证码的登录请求,以使服务器基于用户ID和用户验证码对客户端进行身份验证;
获取通过指令模块,用于获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则,将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存;
获取当前客户令牌模块,用于基于历史客户令牌和令牌生成规则,获取当前客户令牌;
形成业务请求模块,用于基于当前客户令牌形成业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
发送业务请求模块,用于将业务请求发送给服务器。
一种计算机设备,包括存储器、处理器以及存储在存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述令牌更新方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述令牌更新方法的步骤。
一种令牌更新方法,包括服务器执行的如下步骤:
获取客户端发送的登录请求,登录请求包括用户ID和用户验证码;
基于用户ID和用户验证码对客户端进行身份认证,若身份认证通过,则采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于令牌认证次数、历史服务令牌和令牌生成规则生成验证通过指令;
向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以使客户端基于令牌认证次数、历史服务令牌和令牌生成规则生成当前客户令牌;
接收客户端发送的业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
基于用户ID对应的令牌验证次数对当前客户令牌进行验证,若验证通过,则执行业务请求中的业务指令。
一种令牌更新装置,应用于服务器,服务器包括:
获取登陆请求模块,用于获取客户端发送的登录请求,登录请求包括用户ID和用户验证码;
生成通过指令模块,用于基于用户ID和用户验证码对客户端进行身份认证,若身份认证通过,则采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于令牌认证次数、历史服务令牌和令牌生成规则生成验证通过指令;
发送通过指令模块,用于向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以使客户端基于令牌认证次数、历史服务令牌和令牌生成规则生成当前客户令牌;
接收业务请求模块,用于接收客户端发送的业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
执行业务指令模块,用于基于用户ID对应的令牌验证次数和当前服务令牌对当前客户令牌进行令牌验证,若令牌验证通过,则执行业务请求中的业务指令。
一种计算机设备,包括存储器、处理器以及存储在存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述令牌更新方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述令牌更新方法的步骤。
上述令牌更新方法、装置、计算机设备及存储介质,通过登录请求的客户端发送历史服务令牌和令牌生成规则,该历史服务令牌还携带令牌认证次数,利于后续客户端基于令牌生成规则和令牌认证次数生成对应的当前客户令牌,以使服务器基于携带该当前客户令牌的业务请求进行令牌验证,从而服务器执行业务请求中业务指令的安全性和可靠性,避免服务器接收到业务请求时重新对客户端进行身份验证或生成新的令牌浪费时间,造成业务中止;通过令牌生成规则可有效保障生成令牌的持续性和保密性,同时通过监控令牌认证次数也可决定是否更换令牌,保障生成令牌的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中令牌更新方法的应用环境示意图;
图2是本发明一实施例中令牌更新方法的流程图;
图4是本发明一实施例中令牌更新方法的另一流程图;
图5是本发明一实施例中令牌更新方法的另一流程图;
图6是本发明一实施例中令牌更新装置的示意图;
图7是本发明一实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的令牌更新方法,可应用在如图1的应用环境中,该令牌更新方法应用在令牌更新***中,该令牌更新***包括客户端和服务器,其中,客户端通过网络与服务器进行通信。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。该客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等计算机设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
该令牌更新方法应用于客户端,执行如下步骤:
向服务器发送携带用户ID和用户验证码的登录请求,以使服务器基于用户ID和用户验证码对客户端进行身份验证;
获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则,将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存;
基于历史客户令牌和令牌生成规则,获取当前客户令牌;
基于当前客户令牌形成业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
将业务请求发送给服务器。
该令牌更新方法应用于服务器,执行的如下步骤:
获取客户端发送的登录请求,登录请求包括用户ID和用户验证码;
基于用户ID和用户验证码对客户端进行身份认证,若身份认证通过,则采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于令牌认证次数、历史服务令牌和令牌生成规则生成验证通过指令;
向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以使客户端基于令牌认证次数、历史服务令牌和令牌生成规则生成当前客户令牌;
接收客户端发送的业务请求,业务请求包括用户ID、当前客户令牌和业务指令;
基于用户ID对应的令牌验证次数和当前服务令牌对当前客户令牌进行令牌验证,若令牌验证通过,则执行业务请求中的业务指令。
在一实施例中,如图2所示,提供一种令牌更新方法,以该方法应用在图1中的客户端和服务器为例进行说明,包括如下步骤:
S11.客户端向服务器发送携带用户ID和用户验证码的登录请求,以使服务器基于用户ID和用户验证码对客户端进行身份验证。
其中,用户ID是用以区分不同用户的标识,包括但不限于用户名、用户手机号或用户身份证号码等。具体地,用户首次通过客户端登陆服务器进行注册时,需要设置用户ID和与用户ID对应的注册验证码,并将用户ID和注册验证码关联存储在数据库中,用以后续用户登录服务器时进行身份验证。
可以理解地,用户验证码是由用户通过客户端输入的验证码,用以服务器对比数据库中存储的与用户ID对应的注册验证码和该用户验证码是否相同,上述过程即是服务器对客户端进行身份验证的过程。
登陆请求是用户通过客户端发送的申请服务器通过身份验证的请求。
步骤S11中,用户可通过客户端向服务器发送登陆请求,给后续服务器基于该登陆请求对用户进行身份验证准备技术基础。
S21.服务器获取客户端发送的登录请求,登录请求包括用户ID和用户验证码。
步骤S21中,服务器可通过接受到的客户端发送的登陆请求中的用户ID,在数据库中匹配出与该用户ID相对应的注册验证码,对用户验证码进行身份验证,用以保障客户端登陆服务器的安全性和可靠性。
S22.服务器基于用户ID和用户验证码对客户端进行身份认证,若身份认证通过,则采用令牌生成规则生成历史服务令牌和与历史服务令牌对应的令牌认证次数,基于令牌认证次数、历史服务令牌和令牌生成规则生成验证通过指令。
其中,令牌生成规则是由服务器设置的将历史令牌生成历史服务令牌的规则。具体地,服务器可根据实际应用情况的保密程度进行设定,可以每次基于历史服务令牌采用相同的令牌生成算法生成当前服务令牌,也可每次都采用不同的令牌生成算法生成当前服务令牌。需要说明的是,服务器可给每一客户端携带不同的令牌生成规则,用以提高对不同客户端进行令牌认证时的安全性。
为了便于说明,本实施例可每次都采用相同的令牌生成算法以生成新的当前服务令牌。可以理解地,因后续该令牌生成规则需要发送给客户端,即客户端也每次基于相同的令牌生成算法由历史客户令牌生成当前客户令牌。
令牌(也称历史服务令牌JWT,JSON Web Token)包括载荷数据和签名数据。其中,载荷数据用来承载令牌要传递的数据,是对JWT要传递的数据的一组声明。载荷数据的一个“属性值对”其实就是一个声明,每一个声明的都代表特定的含义和作用。将令牌应用于本实施例中,由服务器对一个用户ID第一次生成的令牌为历史服务令牌,在后续流程中,服务器相对于该用户ID和历史服务令牌基础上生成的令牌为当前服务令牌。
可以理解地,当前服务令牌发送给客户端之后也即保存为更新的历史服务令牌,用以下次服务器调用历史服务令牌时调用更新的历史服务令牌。进一步地,在客户端一侧,客户端通过历史客户令牌生成当前历史令牌与历史服务令牌生成当前服务令牌采用相同的逻辑,此处不再赘述。
令牌验证次数是用户ID对应的历史服务令牌经过服务器验证的次数。比如,若历史服务令牌未被服务器验证过,则该历史服务令牌的令牌验证次数为默认值,一般设置为零。若历史服务令牌被服务器验证过两次,则该历史服务令牌对应的令牌验证次数为2。
验证通过指令是服务器在客户端身份验证通过后形成的指令,该验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则。该验证通过指令需发送给客户端,以使客户端可基于令牌认证次数、历史服务令牌和令牌生成规则生成对应的客户历史令牌。
具体地,令牌中的载荷数据传递用以进行令牌认证、可解密和验证令牌有效性的数据。载荷数据以JSON(JavaScript Object Notation,轻量级的数据交换格式)对象格式来承载要传递的数据。其中,JSON对象格式是一种易于人编写和阅读,更易于生成和解析数据存储格式。
载荷数据主要包括:
iss(Issuser):代表这个JWT签发主体;
sub(Subject):代表这个JWT的主体,即它的所有人;
aud(Audience):代表这个JWT接收对象;
exp(Expiration time):是一个时间戳,代表这个JWT过期时间;
nbf(Not Before):是一个时间戳,代表这个JWT生效的开始时间,意味着在这个时间之前验证JWT是会失败的;
iat(Issued at):是一个时间戳,代表这个JWT签发时间;
jti(JWT ID):是JWT的唯一标识。
举一个场景为例说明基于客户端的登录状态生成载荷数据的过程:
B登录example网站通过认证后,向A发起通过网页添加好友的请求。服务器根据B的登录状态,给B生成的历史服务令牌为(JSON对象):
Figure GDA0004214991640000081
Figure GDA0004214991640000091
上述历史服务令牌中前五个字段是由JWT的标准定义的。将上面的JSON对象进行BASE64编码可以得到下面的字符串,也即载荷数据:
eyJpc3MiOiJKb2huIFd1IEpXVCIsImlhdCI6MTQ0MTU5MzUwMiwiZXhwIjoxNDQx NTk0NzIyLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiZnJvbV91c2VyIjoiQiIsInRhcmdldF91c2VyIjoiQSJ9。
本实施例中,服务器通过客户端发送的登陆请求的状态并添加其它信息生成载荷数据,可以帮助今后收到该JWT的服务器理解这个JWT。在一具体实施方式中,服务器基于载荷数据和签名数据生成历史服务令牌,具体包括如下步骤:
1)采用BASE64编码算法对载荷数据进行编码,获取载荷部。
具体地,BASE64是网络上最常见的用于传输8Bit字节码的编码方式之一,BASE64就是一种基于64个可打印字符来表示二进制数据的方法,可用于在HTTP环境下传递较长的标识信息。在应用程序中,常常需要把二进制数据编码为适合放在URL(UniversalResource Locator,统一资源定位符)中的形式。此时,采用BASE64编码对载荷数据进行编码具有不可读性,需要解码后才能阅读。
2)采用预设公钥算法对用户ID和载荷数据进行加密,获取签名部。
具体地,将载荷数据以及用户ID进行公钥加密得到签名部,加密算法统一采用带密钥的加密算法,包括但不限于:RSA(Ron Rivest、Adi Shamir、Leonard Adleman,三人名字的联名)算法、国密SM2非对称加密算法、3DES(TDEA,Triple Data EncryptionAlgorithm,三重数据加密算法)等。
进一步地,RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。SM2算法是一种较RSA更先进安全的算法,在我国商用密码体系中被用来替换RSA算法。如今只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
3DES是DES(Data Encryption Standard,数据加密标准)加密算法的一种模式,使用3条56位的密钥对数据进行三次加密。DES是美国的一种由来已久的加密标准,使用对称密钥加密法,并于1981年被ANSI组织规范为ANSI X.3.92。DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。
3)基于载荷部和签名部,获取历史服务令牌。
步骤S22中,服务器向客户端发送包括历史服务令牌和令牌生成规则验证通过指令,用以客户端采用与服务器相同的令牌生成规则生成对应的客户历史服务令牌,保障服务器和客户端生成令牌采用的预设生成规则的一致性。
步骤S22中,服务器只在身份验证通过后才给客户端生成与用户ID对应的历史服务令牌,以保障后续客户端通过携带令牌直接提起业务请求的安全性;服务器将历史服务令牌和对应的令牌生成规则合并到验证通过指令中,利于客户端同时收到历史服务令牌和对应的令牌生成规则进行关联保存,无需再另行匹配。
S23.向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以使客户端基于令牌认证次数、历史服务令牌和令牌生成规则生成当前客户令牌。
其中,历史客户令牌包括两种情形,一种是客户端第一次存储与用户ID对应的情形,此时,历史客户令牌是直接复制历史服务令牌到本地形成的;另一种情形是,每次基于历史服务令牌生成的新的当前服务令牌,当前服务令牌即更新为历史服务令牌。
步骤S23中,服务器向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以保障客户端采用令牌生成规则生成新的当前客户令牌或直接采用历史客户令牌作为当前客户令牌,与服务器保持令牌更新一致性,从而保障服务器对客户端携带的令牌进行验证时的可靠性。
S12.客户端获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则,将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存。
步骤S12中,客户端将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存,便于客户端及时获取历史服务令牌和对应的令牌生成规则,快速生成当前客户令牌进行身份验证。
S13.客户端基于令牌认证次数、历史客户令牌和令牌生成规则,获取当前客户令牌。
其中,当前客户令牌是客户端基于历史令牌和令牌生成规则当前生成的最新的,用以向服务器发送业务请求时携带的令牌。
具体地,客户端首先将令牌认证次数进行分析,当令牌认证次数达到预设阈值(即被认证的最大次数)时,可认为该令牌的认证次数过多,为了保障认证安全性,应及时采用令牌生成规则生成新的当前客户令牌。
令牌生成规则可采用多种加密算法,于本实施例令牌生成规则可采用MD5加密算法,基于历史客户令牌生成当前客户令牌,以下举例说明采用MD5加密算法由历史客户令牌生成当前客户令牌的实现过程:
MD5算法(Message-Digest Algorithm,目前应用最广泛的Hash算法)以512位分组来处理输入的历史客户令牌,每一分组又划分为16个32位子分组,算法的输出由四个32位分组组成。
首先,填充历史客户令牌对应的字符串使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。四个32位变量初始化为:
A=0×01234567
B=0×89abcdef
C=0xfedcba98
D=0×76543210
它们称为链接变量(chaining variable)
接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。
将上面四个变量复制到另外的变量中:A到a,B到b,C到c,D到d。
主循环有四轮,每轮很相拟。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是与,|是或,~是非,^是异或)
这些函数是这样设计的:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。
函数F是按逐位方式操作:如果X,那么Y,否则Z。函数H是逐位奇偶操作符。
设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)
II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
常数ti可以如下选择:
在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度(4294967296是2的32次方)。
第一组完成之后,将a、b、c、d分别在原来基础上再加上A、B、C、D。即a=a+A,b=b+B,c=c+C,d=d+D,
然后用下一分组数据继续运行以上算法,直至处理完所有分组数据。
最后,客户端获取a,b,c和d四组32位信息分组输出,将它们首尾拼接起来,也即a+b+c+d形成一个128位散列值,该散列值就是当前客户令牌。
步骤S13中,客户端通过采用MD5算法作为令牌生成规则,拼接四组32位信息分组形成128位的散列数组,可增强生成的当前客户令牌的安全性和唯一性。
S14.客户端基于当前客户令牌形成业务请求,业务请求包括用户ID、当前客户令牌和业务指令。
其中,业务请求是客户端向服务器发送的请求服务器实现的携带业务指令的请求。业务指令包括但不限于转账指令或保单支付指令等。
步骤14中,客户端集合用户ID、当前客户令牌和业务指令形成业务请求,用以给后续服务器基于该业务请求进行令牌验证准备技术基础。
S15.客户端将业务请求发送给服务器。
其中,令牌验证是服务器将同一用户ID对应的当前客户令牌和当前服务令牌进行的验证。
步骤S15中,客户端将携带用户ID的业务请求发送给服务器,利于服务器基于该用户ID及时获取与该用户ID对应的当前服务令牌,并基于当前服务令牌和业务请求中的当前客户令牌进行令牌验证,提高服务器对客户端进行令牌验证的精确性和验证效率;同时,当服务器对当前服务令牌的验证通过后,即可执行业务指令,有效保障业务执行的可持续性。
S24.服务器接收客户端发送的业务请求,业务请求包括用户ID、当前客户令牌和业务指令。
步骤S24中,服务器在接收客户间发送的业务请求之后,通过用户ID可获取服务器中存储的对应的历史服务令牌和该历史服务令牌对应的令牌认证次数,为后续服务器对该当前客户令牌进行令牌验证准备技术基础。
S25.服务器基于用户ID对应的令牌验证次数和当前服务令牌对当前客户令牌进行令牌验证,若令牌验证通过,则执行业务请求中的业务指令。
具体地,服务器可根据令牌验证次数判定生成新的当前服务令牌还是直接将历史服务令牌作为当前服务令牌,然后将当前服务令牌与当前客户令牌进行对比,当两者相同时视为令牌验证通过。
步骤S25中,服务器对客户端携带的当前客户令牌进行令牌验证通过后,即可执行业务请求中的业务指令,避免再次对客户端进行身份验证,提高执行业务指令的速度同时保障业务执行的安全性。
优选地,在步骤S25之后,即在基于用户ID对应的令牌验证次数对当前客户令牌进行验证的步骤之后,该令牌更新方法还包括如下步骤:
若验证未通过,则通知客户端重新发送业务请求。
本步骤提供的实施例,是服务器对当前客户令牌进行验证后得到的验证未通过的结果,是步骤S25的补充步骤。可以理解地,当验证未通过时,为了保障业务指令的正常执行,服务器允许客户端重新发送业务请求。优选地,当客户端发送的同一业务请求次数过多时,服务器还可重新要求客户端发送登陆请求,以便服务器重新对客户端进行身份验证,保障客户端登陆服务器的安全性。
本实施例提供的令牌更新方法中,服务器可给通过登录请求的客户端发送历史服务令牌和令牌生成规则,该历史服务令牌还携带令牌认证次数,利于后续客户端基于令牌生成规则和令牌认证次数生成对应的当前客户令牌,以使服务器基于携带该当前客户令牌的业务请求进行令牌验证,从而服务器执行业务请求中业务指令的安全性和可靠性,避免服务器接收到业务请求时重新对客户端进行身份验证或生成新的令牌浪费时间,造成业务中止;通过令牌生成规则可有效保障生成令牌的持续性和保密性,同时通过监控令牌认证次数也可决定是否更换令牌,保障生成令牌的安全性。
进一步地,如图3所示,令牌生成规则包括令牌有效期;步骤S13中,即客户端基于历史客户令牌和令牌生成规则,获取当前客户令牌的步骤,具体包括如下步骤:
S131.基于令牌有效期或令牌验证次数判断历史客户令牌是否有效。
步骤S1311中,客户端可基于服务器在令牌生成规则中指定的***当前时间是否超过令牌有效期来判定历史客户令牌在当前是否还有效,或者还可以通过该历史客户令牌对应的令牌验证次数判定该历史客户令牌是否在当前还有效,通过多维度判定历史客户令牌还是否有效,增强历史客户令牌的使用可靠性。
S132.若历史客户令牌有效,则将历史客户令牌作为当前客户令牌。
步骤S1312中,当判定历史客户令牌还有效时,为了减少服务器不必要的负载,客户端无需更新历史客户令牌,可直接将历史客户令牌作为当前客户令牌,也加快客户端获得当前客户令牌的速度。
S133.若历史客户令牌无效,则采用令牌生成规则对历史客户令牌进行处理,获取当前客户令牌,将当前客户令牌作为更新的历史客户令牌。
步骤S133中,当判定历史客户令牌失效时,客户端基于令牌生成规则生成当前客户令牌,用以保障后续业务请求执行的顺利性和安全性;同时,采用服务器提供的令牌生成规则也可保障服务器对历史服务令牌进行更新的一致性。
步骤S131至S133中,客户端可基于服务器在令牌生成规则中指定的令牌有效期是否超过***当前时间来判定历史客户令牌在当前是否还有效,或者还可以通过该历史客户令牌对应的令牌验证次数判定该历史客户令牌是否在当前还有效,通过多维度判定历史客户令牌还是否有效,增强历史客户令牌的使用可靠性。当判定历史客户令牌还有效时,为了减少服务器不必要的负载,客户端无需更新历史客户令牌,可直接将历史客户令牌作为当前客户令牌,也加快客户端获得当前客户令牌的速度。当判定历史客户令牌失效时,客户端基于令牌生成规则生成当前客户令牌,用以保障后续业务请求执行的顺利性和安全性;同时,采用服务器提供的令牌生成规则也可保障服务器对历史服务令牌进行更新的一致性。
进一步地,如图4所示,令牌生成规则包括令牌有效期;步骤S131中,即客户端基于令牌有效期或所述令牌验证次数判断所述历史客户令牌是否有效,具体包括如下步骤:
S1311.获取***当前时间。
其中,令牌有效期是每个令牌失效的最晚时间。
具体地,客户端可通过客户端自带的System类中的currentTimeMillis方法来获取当前时间。
步骤S3111中,客户端通过获取***当前时间为后续验证历史客户令牌是否有效准备技术基础。
S1312.若***当前时间未达到历史服务令牌的令牌有效期或令牌验证次数未达到预设阈值,则所述历史客户令牌有效。
其中,预设阈值是对历史客户令牌采用令牌生成规则进行更新的最小次数。比如,预设预置为5,说明当用户ID对应的令牌验证次数为5时,客户端需要对该用户ID对应的历史客户令牌采用令牌生成规则进行更新,以保障当前客户令牌经过多次验证后保持验证安全性。
步骤S1312中,客户端可通过直接对比***当前时间未达到历史服务令牌的令牌有效期或令牌验证次数未达到预设阈值,即可判定历史客户令牌有效,判定方式简单快捷,加快客户端直接将历史客户令牌作为当前客户令牌的处理速度。
S1313.若***当前时间达到历史服务令牌的令牌有效期或令牌验证次数达到预设阈值,则历史客户令牌无效。
步骤S1313中,客户端可通过直接对比***当前时间达到历史服务令牌的令牌有效期或令牌验证次数达到预设阈值,即可判定历史客户令牌无效,判定方式简单快捷,加快客户端直接将历史客户令牌采用令牌生成规则进行更新以获取当前客户令牌的处理速度。
步骤S1311至S1313中,客户端通过获取***当前时间为后续验证历史客户令牌是否有效准备技术基础。客户端可通过直接对比***当前时间未达到历史服务令牌的令牌有效期或令牌验证次数未达到预设阈值,即可判定历史客户令牌有效,判定方式简单快捷,加快客户端直接将历史客户令牌作为当前客户令牌的处理速度。客户端可通过直接对比***当前时间达到历史服务令牌的令牌有效期或令牌验证次数达到预设阈值,即可判定历史客户令牌无效,判定方式简单快捷,加快客户端直接将历史客户令牌采用令牌生成规则进行更新以获取当前客户令牌的处理速度。
进一步地,如图5所示,步骤S25中,即服务器基于用户ID对应的令牌验证次数对当前客户令牌进行验证,具体包括如下步骤:
S251.基于用户ID对应的历史服务令牌和令牌验证次数,获取当前服务令牌。
具体地,服务器基于用户ID获取该用户ID在服务器中对应的历史服务令牌和令牌验证次数,当令牌验证次数未达到预设阈值时,服务器可直接将历史服务令牌作为当前服务令牌;当令牌验证次数达到预设阈值时,说明当前客户端发送的当前客户令牌已经经过更新,因此,服务器也应同步基于令牌生成规则对历史服务令牌进行更新后获得当前服务令牌。
进一步地,当令牌验证次数达到预设阈值时,此时服务器应给令牌验证次数加1;当令牌验证次数达到预设阈值时,服务器基于令牌生成规则对历史服务令牌进行更新后获得当前服务令牌后,应将令牌验证次数设置为默认值,也即设置为零。
步骤S251中,服务器仅通过令牌验证次数即可判定是否采用令牌生成规则对历史服务令牌进行更新,无需在判定历史服务令牌是否在有效期内,利于服务器及时获取用户ID对应的当前服务令牌与当前客户令牌进行对比。
S252.将当前服务令牌与当前客户令牌进行匹配验证。
步骤S252中,服务器可直接对比当前服务令牌和当前客户令牌是否完全相同,即可完成对客户端的令牌验证,为后续服务器是否可及时完成业务指令准备技术基础。
步骤S251至S252中,服务器仅通过令牌验证次数即可判定是否采用令牌生成规则对历史服务令牌进行更新,无需在判定历史服务令牌是否在有效期内,利于服务器及时获取用户ID对应的当前服务令牌与当前客户令牌进行对比。服务器可直接对比当前服务令牌和当前客户令牌是否完全相同即可完成对客户端的令牌验证,为后续服务器是否可及时完成业务指令准备技术基础。
本实施例提供的令牌更新方法中,服务器可给通过登录请求的客户端发送历史服务令牌和令牌生成规则,该历史服务令牌还携带令牌认证次数,利于后续客户端基于令牌生成规则和令牌认证次数生成对应的当前客户令牌,以使服务器基于携带该当前客户令牌的业务请求进行令牌验证,从而服务器执行业务请求中业务指令的安全性和可靠性,避免服务器接收到业务请求时重新对客户端进行身份验证或生成新的令牌浪费时间,造成业务中止;通过令牌生成规则可有效保障生成令牌的持续性和保密性,同时通过监控令牌认证次数也可决定是否更换令牌,保障生成令牌的安全性。
进一步地,客户端可基于服务器在令牌生成规则中指定的令牌有效期是否超过***当前时间来判定历史客户令牌在当前是否还有效,或者还可以通过该历史客户令牌对应的令牌验证次数判定该历史客户令牌是否在当前还有效,通过多维度判定历史客户令牌还是否有效,增强历史客户令牌的使用可靠性。当判定历史客户令牌还有效时,为了减少服务器不必要的负载,客户端无需更新历史客户令牌,可直接将历史客户令牌作为当前客户令牌,也加快客户端获得当前客户令牌的速度。
进一步地,客户端可基于服务器在令牌生成规则中指定的令牌有效期是否超过***当前时间来判定历史客户令牌在当前是否还有效,或者还可以通过该历史客户令牌对应的令牌验证次数判定该历史客户令牌是否在当前还有效,通过多维度判定历史客户令牌还是否有效,增强历史客户令牌的使用可靠性。当判定历史客户令牌失效时,客户端基于令牌生成规则生成当前客户令牌,用以保障后续业务请求执行的顺利性和安全性;同时,采用服务器提供的令牌生成规则也可保障服务器对历史服务令牌进行更新的一致性。
进一步地,客户端通过获取***当前时间为后续验证历史客户令牌是否有效准备技术基础。客户端可通过直接对比***当前时间未达到历史服务令牌的令牌有效期或令牌验证次数未达到预设阈值,即可判定历史客户令牌有效,判定方式简单快捷,加快客户端直接将历史客户令牌作为当前客户令牌的处理速度。客户端可通过直接对比***当前时间达到历史服务令牌的令牌有效期或令牌验证次数达到预设阈值,即可判定历史客户令牌无效,判定方式简单快捷,加快客户端直接将历史客户令牌采用令牌生成规则进行更新以获取当前客户令牌的处理速度。
进一步地,服务器仅通过令牌验证次数即可判定是否采用令牌生成规则对历史服务令牌进行更新,无需在判定历史服务令牌是否在有效期内,利于服务器及时获取用户ID对应的当前服务令牌与当前客户令牌进行对比。服务器可直接对比当前服务令牌和当前客户令牌是否完全相同即可完成对客户端的令牌验证,为后续服务器是否可及时完成业务指令准备技术基础。
在一实施例中,提供一种令牌更新装置,该令牌更新装置与上述实施例中令牌更新方法一一对应。如图6所示,该令牌更新装置包括客户端10,该客户端10包括发送登陆请求模块11、获取通过指令模块12、获取当前客户令牌模块13、形成业务请求模块14和发送业务请求模块15。各功能模块详细说明如下:
发送登陆请求模块11,用于向服务器发送携带用户ID和用户验证码的登录请求,以使服务器基于用户ID和用户验证码对客户端进行身份验证。
获取通过指令模块12,用于获取服务器发送的验证通过指令,验证通过指令包括令牌认证次数、历史服务令牌和令牌生成规则,将历史服务令牌作为历史客户令牌与令牌生成规则进行关联保存。
获取当前客户令牌模块13,用于基于历史客户令牌和令牌生成规则,获取当前客户令牌。
形成业务请求模块14,用于基于当前客户令牌形成业务请求,业务请求包括用户ID、当前客户令牌和业务指令。
发送业务请求模块15,用于将业务请求发送给服务器。
优选地,该获取当前客户令牌模块包括判断令牌有效单元、历史服务令牌有效单元和历史服务令牌无效单元。
判断令牌有效单元,用于基于令牌有效期或令牌验证次数判断历史客户令牌是否有效。
历史服务令牌有效单元,用于若历史客户令牌有效,则将历史客户令牌作为当前客户令牌。
历史服务令牌无效单元,用于若历史客户令牌无效,则采用令牌生成规则对历史客户令牌进行处理,获取当前客户令牌,将当前客户令牌作为更新的历史客户令牌。
优选地,判断令牌有效单元包括获取当前时间单元、令牌有效单元和令牌无效单元。
获取当前时间单元,用于获取***当前时间。
令牌有效单元,用于若***当前时间未达到历史服务令牌的令牌有效期或令牌验证次数未达到预设阈值,则所述历史客户令牌有效。
令牌无效单元,用于若***当前时间达到历史服务令牌的令牌有效期或令牌验证次数达到预设阈值,则历史客户令牌无效。
在一实施例中,提供一种令牌更新装置,该令牌更新装置与上述实施例中令牌更新方法一一对应。如图6所示,该令牌更新装置包括服务器20,该服务器20包括获取登陆请求模块21、生成通过指令模块22、发送通过指令模块23、接收业务请求模块24和执行业务指令模块25。各功能模块详细说明如下:
获取登陆请求模块21,用于获取客户端发送的登录请求,登录请求包括用户ID和用户验证码。
生成通过指令模块22,用于基于用户ID和用户验证码对客户端进行身份认证,若身份认证通过,则采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于令牌认证次数、历史服务令牌和令牌生成规则生成验证通过指令。
发送通过指令模块23,用于向客户端发送携带令牌认证次数的历史服务令牌和令牌生成规则的验证通过指令,以使客户端基于令牌认证次数、历史服务令牌和令牌生成规则生成当前客户令牌。
接收业务请求模块24,用于接收客户端发送的业务请求,业务请求包括用户ID、当前客户令牌和业务指令。
执行业务指令模块25,用于基于用户ID对应的令牌验证次数和当前服务令牌对当前客户令牌进行令牌验证,若令牌验证通过,则执行业务请求中的业务指令。
优选地,执行业务指令模块25包括获取服务令牌单元和业务请求通过单元。
获取服务令牌单元,用于基于用户ID对应的历史服务令牌和令牌验证次数,获取当前服务令牌。
业务请求通过单元,用于将当前服务令牌与当前客户令牌进行匹配验证。
优选地,该令牌更新装置还包括业务请求通过单元。
业务请求未通过单元,用于若验证未通过,则通知客户端重新发送业务请求。
关于令牌更新装置的具体限定可以参见上文中对于令牌更新方法的限定,在此不再赘述。上述令牌更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,提供一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储令牌更新方法中需保存的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种令牌更新方法。
在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例令牌更新方法的步骤,例如图2所示的步骤S11至步骤S25。或者,处理器执行计算机程序时实现上述实施例中令牌更新装置的各模块/单元的功能,例如图6所示模块10至模块20的功能。为避免重复,此处不再赘述。
在一实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述令牌更新调用方法,例如图2所示的步骤S11至步骤S25。或者,该计算机程序被处理器执行时实现上述装置实施例中令牌更新装置中各模块/单元的功能,例如图6所示模块10至模块20的功能。为避免重复,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种令牌更新方法,应用于客户端,其特征在于,包括:
向服务器发送携带用户ID和用户验证码的登录请求,以使所述服务器基于所述用户ID和所述用户验证码对客户端进行身份验证;
获取服务器发送的验证通过指令,所述验证通过指令包括与所述客户端对应的令牌生成规则和基于令牌生成规则生成的历史服务令牌和令牌认证次数,将所述历史服务令牌作为历史客户令牌与所述令牌生成规则进行关联保存;
基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则,获取当前客户令牌;
基于所述当前客户令牌形成业务请求,所述业务请求包括用户ID、当前客户令牌和业务指令;
将所述业务请求发送给服务器。
2.如权利要求1所述的令牌更新方法,其特征在于,所述令牌生成规则包括令牌有效期;
所述基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则,获取当前客户令牌,包括:
基于令牌有效期或所述令牌认证次数判断所述历史客户令牌是否有效;
若所述历史客户令牌有效,则将所述历史客户令牌作为当前客户令牌;
若所述历史客户令牌无效,则采用所述令牌生成规则对所述历史客户令牌进行处理,获取当前客户令牌,将所述当前客户令牌作为更新的历史客户令牌。
3.如权利要求2所述的令牌更新方法,其特征在于,所述基于令牌有效期或所述令牌认证次数判断所述历史客户令牌是否有效,包括:
获取***当前时间;
若所述***当前时间未达到所述历史服务令牌的令牌有效期或所述令牌认证次数未达到预设阈值,则所述历史客户令牌有效;
若所述***当前时间达到所述历史服务令牌的令牌有效期或所述令牌认证次数达到预设阈值,则所述历史客户令牌无效。
4.一种令牌更新方法,应用于服务器,其特征在于,包括:
获取客户端发送的登录请求,所述登录请求包括用户ID和用户验证码;
基于所述用户ID和用户验证码对所述客户端进行身份认证,若身份认证通过,则基于客户端生成对应的令牌生成规则,采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则生成验证通过指令;
向所述客户端发送携带令牌认证次数的所述历史服务令牌和所述令牌生成规则的验证通过指令,以使所述客户端基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则生成当前客户令牌;
接收客户端发送的业务请求,所述业务请求包括用户ID、当前客户令牌和业务指令;
基于所述用户ID对应的所述令牌认证次数对所述当前客户令牌进行验证,若验证通过,则执行所述业务请求中的业务指令。
5.如权利要求4所述的令牌更新方法,其特征在于,所述基于所述用户ID对应的所述令牌认证次数对所述当前客户令牌进行验证,包括:
基于所述用户ID对应的历史服务令牌和令牌认证次数,获取当前服务令牌;
将所述当前服务令牌与所述当前客户令牌进行匹配验证。
6.如权利要求4所述的令牌更新方法,其特征在于,在所述基于所述用户ID对应的所述令牌认证次数对所述当前客户令牌进行验证的步骤之后,所述令牌更新方法还包括:
若验证未通过,则通知客户端重新发送业务请求。
7.一种令牌更新装置,其特征在于,包括客户端,所述客户端包括:
发送登陆请求模块,用于向服务器发送携带用户ID和用户验证码的登录请求,以使所述服务器基于所述用户ID和所述用户验证码对客户端进行身份验证;
获取通过指令模块,用于获取服务器发送的验证通过指令,所述验证通过指令包括与所述客户端对应的令牌生成规则和基于令牌生成规则生成的历史服务令牌和令牌认证次数,将所述历史服务令牌作为历史客户令牌与所述令牌生成规则进行关联保存;
获取当前客户令牌模块,用于基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则,获取当前客户令牌;
形成业务请求模块,用于基于所述当前客户令牌形成业务请求,所述业务请求包括用户ID、当前客户令牌和业务指令;
发送业务请求模块,用于将所述业务请求发送给服务器,以使服务器基于所述用户ID对应的所述令牌认证次数对所述当前客户令牌进行验证,若验证通过,则执行所述业务请求中的业务指令。
8.一种令牌更新装置,其特征在于,包括服务器,所述服务器包括:
获取登陆请求模块,用于获取客户端发送的登录请求,所述登录请求包括用户ID和用户验证码;
生成通过指令模块,用于基于所述用户ID和用户验证码对所述客户端进行身份认证,若身份认证通过,则基于客户端生成对应的令牌生成规则,采用令牌生成规则生成历史服务令牌和与所述历史服务令牌对应的令牌认证次数,基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则生成验证通过指令;
发送通过指令模块,用于向所述客户端发送携带令牌认证次数的所述历史服务令牌和所述令牌生成规则的验证通过指令,以使所述客户端基于所述令牌认证次数、所述历史服务令牌和所述令牌生成规则生成当前客户令牌;
接收业务请求模块,用于接收客户端发送的业务请求,所述业务请求包括用户ID、当前客户令牌和业务指令;
执行业务指令模块,用于基于所述用户ID对应的所述令牌认证次数对所述当前客户令牌进行验证,若验证通过,则执行所述业务请求中的业务指令。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述令牌更新方法,或者,所述处理器执行所述计算机程序时实现如权利要求4至6任一项所述令牌更新方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述令牌更新方法,或者,所述计算机程序被处理器执行时实现如权利要求4至6任一项所述令牌更新方法。
CN201910042783.2A 2019-01-17 2019-01-17 令牌更新方法、装置、计算机设备及存储介质 Active CN109660343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910042783.2A CN109660343B (zh) 2019-01-17 2019-01-17 令牌更新方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910042783.2A CN109660343B (zh) 2019-01-17 2019-01-17 令牌更新方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109660343A CN109660343A (zh) 2019-04-19
CN109660343B true CN109660343B (zh) 2023-06-20

Family

ID=66118878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910042783.2A Active CN109660343B (zh) 2019-01-17 2019-01-17 令牌更新方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109660343B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988262B (zh) * 2019-05-21 2023-04-28 顺丰科技有限公司 认证方法、装置及服务器、存储介质
CN110225045A (zh) * 2019-06-18 2019-09-10 平安科技(深圳)有限公司 全链路数据鉴权方法、装置、设备及存储介质
CN110311789B (zh) * 2019-06-28 2022-09-13 北京创鑫旅程网络技术有限公司 数据安全传输方法及装置
CN110430062B (zh) * 2019-07-22 2023-07-21 深圳市兰拓科技发展有限公司 登录请求处理方法、装置、设备及介质
CN110535851A (zh) * 2019-08-27 2019-12-03 浪潮云信息技术有限公司 一种基于oauth2协议的用户认证***
CN112491778A (zh) * 2019-09-11 2021-03-12 北京京东尚科信息技术有限公司 认证方法、装置、***及介质
CN111027047B (zh) * 2019-11-29 2024-04-02 安天科技集团股份有限公司 应用程序敏感信息管控方法、装置、电子设备及存储介质
CN111049756B (zh) * 2019-12-24 2023-04-07 北京奇艺世纪科技有限公司 请求响应方法、装置、电子设备及计算机可读存储介质
CN111294337A (zh) * 2020-01-15 2020-06-16 平安科技(深圳)有限公司 一种基于令牌的鉴权方法及装置
CN111585970A (zh) * 2020-04-14 2020-08-25 北京明略软件***有限公司 一种令牌的验证方法和装置
CN111654379B (zh) * 2020-06-08 2022-12-20 杭州安恒信息技术股份有限公司 多服务器的统一令牌生成方法及认证方法
CN111859068A (zh) * 2020-07-02 2020-10-30 中移(杭州)信息技术有限公司 报文跟踪方法、装置、服务器、存储介质
CN111898110A (zh) * 2020-08-05 2020-11-06 苏州朗动网络科技有限公司 用户身份信息的获取方法、装置、服务器和存储介质
CN112751878B (zh) * 2020-12-30 2023-03-24 北京天融信网络安全技术有限公司 一种页面请求处理方法及装置
CN113452677A (zh) * 2021-05-28 2021-09-28 济南浪潮数据技术有限公司 一种请求处理方法、***、设备以及介质
CN113535427A (zh) * 2021-06-29 2021-10-22 上海晶赞融宣科技有限公司 处理请求消息的方法、装置、***、终端及存储介质
CN114143027A (zh) * 2021-10-27 2022-03-04 北京达佳互联信息技术有限公司 验证码令牌的验证方法、装置、电子设备及存储介质
CN115001771B (zh) * 2022-05-25 2024-01-26 武汉极意网络科技有限公司 基于自动更新的验证码防御方法、***、设备及存储介质
CN115150145B (zh) * 2022-06-28 2023-05-23 腾讯科技(深圳)有限公司 众包设备通信方法、装置、计算机设备和存储介质
CN115242499B (zh) * 2022-07-21 2024-03-01 中国平安人寿保险股份有限公司 网络请求方法、网络请求装置、电子设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058798B1 (en) * 2000-04-11 2006-06-06 Sun Microsystems, Inc. Method ans system for pro-active credential refreshing
CN101741851A (zh) * 2009-12-23 2010-06-16 北京交通大学 一种增强源地址真实性保障的令牌更新方法
CN108449187A (zh) * 2018-06-19 2018-08-24 福建天泉教育科技有限公司 一种令牌刷新的方法及装置
CN108462581A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 网络令牌生成的方法、装置、终端设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350726B2 (en) * 2014-09-11 2016-05-24 International Business Machines Corporation Recovery from rolling security token loss

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058798B1 (en) * 2000-04-11 2006-06-06 Sun Microsystems, Inc. Method ans system for pro-active credential refreshing
CN101741851A (zh) * 2009-12-23 2010-06-16 北京交通大学 一种增强源地址真实性保障的令牌更新方法
CN108462581A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 网络令牌生成的方法、装置、终端设备及存储介质
CN108449187A (zh) * 2018-06-19 2018-08-24 福建天泉教育科技有限公司 一种令牌刷新的方法及装置

Also Published As

Publication number Publication date
CN109660343A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109660343B (zh) 令牌更新方法、装置、计算机设备及存储介质
CN111066287B (zh) 使用可信执行环境检索区块链网络的公开数据
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
US11146400B2 (en) Methods for verifying data integrity
CN109347835B (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
CN110380852B (zh) 双向认证方法及通信***
CN109347627B (zh) 数据加解密方法、装置、计算机设备及存储介质
Zhao et al. A novel mutual authentication scheme for Internet of Things
US10348498B2 (en) Generating a symmetric encryption key
CN109688098B (zh) 数据的安全通信方法、装置、设备及计算机可读存储介质
US10356090B2 (en) Method and system for establishing a secure communication channel
CN102780698A (zh) 物联网平台中用户终端安全通信的方法
CN110611670A (zh) 一种api请求的加密方法及装置
CN110781140B (zh) 区块链中数据签名的方法、装置、计算机设备及存储介质
CN114614994B (zh) Api接口数据的通信方法、装置、客户端及存储介质
CN109309566B (zh) 一种认证方法、装置、***、设备及存储介质
US20180063131A1 (en) Mutual authentication
CN105281902A (zh) 一种基于移动终端的Web***安全登录方法
WO2016056989A1 (en) Improved security through authentication tokens
KR20170053063A (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
CN113411187B (zh) 身份认证方法和***、存储介质及处理器
CN101924734A (zh) 一种基于Web表单的身份认证方法及认证装置
Mun et al. A novel secure and efficient hash function with extra padding against rainbow table attacks
Dowling et al. There can be no compromise: The necessity of ratcheted authentication in secure messaging
CN113312576A (zh) 一种页面跳转方法、***及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant