CN117879827A - 一种token传输验证方法、装置、系统、设备和介质 - Google Patents
一种token传输验证方法、装置、系统、设备和介质 Download PDFInfo
- Publication number
- CN117879827A CN117879827A CN202311675105.2A CN202311675105A CN117879827A CN 117879827 A CN117879827 A CN 117879827A CN 202311675105 A CN202311675105 A CN 202311675105A CN 117879827 A CN117879827 A CN 117879827A
- Authority
- CN
- China
- Prior art keywords
- token
- checka
- temporary user
- timestamp
- user
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012795 verification Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 title claims abstract description 39
- 239000000284 extract Substances 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种token传输验证方法、装置、系统、设备和介质,涉及计算机技术领域。所述方法包括:服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,存入缓存并设置token的有效时间;将token、临时用户ID以及偏移因子发送给客户端;客户端需发起请求时,根据当前的时间戳生成一段随机字符串,与token进行拼接并计算md5值得到CheckA,根据时间戳和偏移因子将临时用户ID插入到CheckA中得到CheckB;服务端提取到请求参数中的时间戳、随机字符串、CheckB后,根据偏移因子提取临时用户ID和CheckA,然后根据缓存的token进行CheckA验证得到验证结果。本发明在整个token的生命周期内仅传输一次,在身份校验时无需传递token即可实现身份验证,从而做到对token的安全保护。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种token传输验证方法、装置、系统、设备和介质。
背景技术
Token是一种常见的身份验证机制。通常当用户需要登录以访问受保护的资源,会通过使用token作为证明身份的凭据。
现有技术中token的传输通常采用以下两种方案:方案一,token传输是以HTTPHeaderAuthentication的方式传输;方案二,token以cookie Authentication的方式。以上的两种方案都存在着传输过程中,容易被攻击者截获,然后适用token模拟用户请求访问受保护资源,造成严重损失。
而针对该问题当前业界处理的主流方法是采用双token,分别为一个access_token,该token过期时间短,主要用于身份核验,而另外一个fresh_token用于定期刷新access_token。该方法只能解决token被截获后,影响的范围时间,通过较高频率的刷新token机制在一定程度上防窃取,但依旧无法解决token传输过程中易被截获的问题。
发明内容
本发明要解决的技术问题,在于提供一种token传输验证方法、装置、系统、设备和介质,通过在整个token的生命周期内仅传输一次,日常的身份校验时都无需传递token即实现身份验证,从而做到对token的安全保护。
第一方面,本发明提供了一种token传输验证方法,包括:
用户登录过程:服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入缓存,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求过程:客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;将时间戳除以偏移因子取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验过程:服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
进一步地,服务端将所述token、临时用户ID以及偏移因子发送给客户端之前,对其用公钥进行加密,客户端收到并用私钥解密后再执行发起请求步骤。
进一步地,在服务端提取到请求参数中的时间戳、随机字符串、CheckB后,比对客户端的时间戳与随机字符串的服务端是否已处理过,不允许重复使用,防止重放攻击。
第二方面,本发明提供了一种token传输验证方法,用于服务端,包括:
用户登录过程:获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验过程:提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
第三方面,本发明提供了一种token传输验证方法,用于客户端,包括:
参数获取过程:获取服务端发送的token、临时用户ID以及偏移因子;
发起请求过程:需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
第四方面,本发明提供了一种token传输验证系统,包括:
用户登录模块,用于服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求模块,用于客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验模块,用于服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
第五方面,本发明提供了一种token传输验证装置,用于服务端,包括:
用户登录模块,用于获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验模块,用于提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
第六方面,本发明提供了一种token传输验证装置,用于客户端,包括:
参数获取模块,用于获取服务端发送的token、临时用户ID以及偏移因子;
发起请求模块,用于需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
第七方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面至第三方面所述的方法。
第八方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面至第三方面所述的方法。
本发明实施例中提供技术方案,至少具有如下技术效果:
通过在整个token的生命周期内仅传输一次,日常的身份校验时都无需传递token,通过时间戳结合偏移因子即可实现身份验证,既能够对token的有效性进行校验,又能够避免token的反复传输,从而避免token泄露,提升系统的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明整体的框架示意图;
图2为本发明实施例一中方法的流程示意图;
图3为本发明实施例一/实施例二/实施例三中方法的详细流程图;
图4为本发明实施例四中系统的结构示意图;
图5为本发明实施例五中装置的结构示意图;
图6为本发明实施例六中装置的结构示意图;
图7为本发明实施例七中电子设备的结构示意图;
图8为本发明实施例八中介质的结构示意图。
具体实施方式
本发明实施例通过提供一种token传输验证方法、装置、系统、设备和介质,通过在整个token的生命周期内仅传输一次,日常的身份校验时都无需传递token即实现身份验证,从而做到对token的安全保护。
本发明实施例中的技术方案,总体思路如下:
基于网络传输的特点,在token传输的保护上需要尽量的做到少传输和不传输才能够解决token被截获的问题。
因此按照该主体思路,巧妙的设计了一种方法,做到在整个token的生命周期内仅传输一次,日常的身份校验时,都不传递token,从而做到对token的安全保护。方法如下:
服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,存入缓存并设置token的有效时间;将token、临时用户ID以及偏移因子发送给客户端;客户端需发起请求时,根据当前的时间戳生成一段随机字符串,与token进行拼接并计算md5值得到CheckA,根据时间戳和偏移因子将临时用户ID插入到CheckA中得到CheckB;服务端提取到请求参数中的时间戳、随机字符串、CheckB后,根据偏移因子提取临时用户ID和CheckA,然后根据缓存的token进行CheckA验证得到验证结果。
在介绍具体实施例之前,先介绍本发明实施例方法所对应的系统框架,如图1所示,系统大概分两个部分:服务端和客户端,服务端和客户端之间实现数据交互。
实施例一
本实施例提供一种token传输验证方法,如图2所示,包括:
用户登录过程:服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入缓存,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求过程:客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;将时间戳除以偏移因子取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验过程:服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
在一具体的实施例中,如图3所示,包括:
一、用户登录过程:
1、用户在客户端输入用户名密码进行登录。
2、服务端进行密码校验生成一个token和一个临时用户ID(UID)。
3、服务端在Redis中缓存临时用户ID(UID)和token信息,设置有效期。
4、服务端将token、UID及服务端配置的偏移因子factor使用公钥进行加密(偏移因子可以随机生成并固定使用),从而提高参数传输的安全性。
5、服务端将加密好的密文发送给客户端。
6、客户端使用私钥进行解密,取出token,UID,factor。
二、发起请求过程:
1、客户端获取Long类型当前的时间戳time并且生成一段8位的随机字符串。
2、将时间戳+随机字符串+token进行拼接并计算md5值得CheckA。
3、将时间戳除以偏移因子factor取余数remainder,假设偏移因子为12,偏移量=time%12。
4、将UID插入到CheckA的第remainder位中得到CheckB。
5、发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
三、Token校验过程:
1、服务的收到客户端的请求,先提取参数CheckB,时间戳,随机字符串。
2、将时间戳除以偏移因子factor取余数remainder。
3、从CheckB中的第remainder位取出临时用户UID和CheckA。
4、从缓存中获取UID绑定的token值。
5、将时间戳+随机字符串+token进行拼接并计算md5值得CheckA’。
6、将第5步骤计算出来的checkA’和第3步骤获取的CheckA进行比对,比对结果一致且在有效期内则客户端token有效。
7、如果需要增加防止重放攻击,则将时间戳和随机字符串写入缓存,并且在步骤2之前比对客户端的时间戳与随机字符串的服务端是否已处理过,不允许重复使用。
实施例二
本实施例提供了一种token传输验证方法,用于服务端,如图3所示,包括:
用户登录过程:获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验过程:提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
实施例三
本实施例提供了一种token传输验证方法,用于客户端,如图3所示,包括:
参数获取过程:获取服务端发送的token、临时用户ID以及偏移因子;
发起请求过程:需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的系统,详见实施例四。
实施例四
在本实施例中提供了一种token传输验证系统,如图4所示,包括:
用户登录模块,用于服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求模块,用于客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验模块,用于服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
由于本发明实施例二所介绍的系统,为实施本发明实施例一的方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请还提供了与实施例二、三中的方法对应的装置,详见实施例五、六。
实施例五
本实施例提供了一种token传输验证装置,用于服务端,如图5所示,包括:
用户登录模块,用于获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验模块,用于提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
实施例六
本实施例提供了一种token传输验证装置,用于客户端,如图6所示,包括:
参数获取模块,用于获取服务端发送的token、临时用户ID以及偏移因子;
发起请求模块,用于需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
由于本发明实施例五、六所介绍的装置,为实施本发明实施例二、三的方法所采用的装置,故而基于本发明实施例二、三所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例二、三的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一至三对应的电子设备实施例,详见实施例七。
实施例七
本实施例提供了一种电子设备,如图7所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一至三中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一至三中方法所采用的设备,故而基于本申请实施例一至三中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一至三对应的存储介质,详见实施例八。
实施例八
本实施例提供一种计算机可读存储介质,如图8所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一至三中任一实施方式。
由于本实施例所介绍的计算机可读存储介质为实施本申请实施例一至三中方法所采用的计算机可读存储介质,故而基于本申请实施例一至三中所介绍的方法,本领域所属技术人员能够了解本实施例的计算机可读存储介质的具体实施方式以及其各种变化形式,所以在此对于该计算机可读存储介质如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的计算机可读存储介质,都属于本申请所欲保护的范围。
本发明通过在整个token的生命周期内仅传输一次,日常的身份校验时都无需传递token,通过时间戳结合偏移因子即可实现身份验证,既能够对token的有效性进行校验,又能够避免token的反复传输,从而避免token泄露,提升系统的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (10)
1.一种token传输验证方法,其特征在于,包括:
用户登录过程:服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入缓存,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求过程:客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;将时间戳除以偏移因子取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验过程:服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
2.根据权利要求1所述的方法,其特征在于:服务端将所述token、临时用户ID以及偏移因子发送给客户端之前,对其用公钥进行加密,客户端收到并用私钥解密后再执行发起请求步骤。
3.根据权利要求1或2所述的方法,其特征在于:在服务端提取到请求参数中的时间戳、随机字符串、CheckB后,比对客户端的时间戳与随机字符串的服务端是否已处理过,不允许重复使用,防止重放攻击。
4.一种token传输验证方法,其特征在于,用于服务端,包括:
用户登录过程:获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验过程:提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
5.一种token传输验证方法,其特征在于,用于客户端,包括:
参数获取过程:获取服务端发送的token、临时用户ID以及偏移因子;
发起请求过程:需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
6.一种token传输验证系统,其特征在于,包括:
用户登录模块,用于服务端获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
发起请求模块,用于客户端需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB;
token校验模块,用于服务端提取到请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
7.一种token传输验证装置,其特征在于,用于服务端,包括:
用户登录模块,用于获取用户登录时输入的用户名和密码,校验通过后生成token以及临时用户ID,将所述token以及临时用户ID存入Redis,并设置token的有效时间;生成偏移因子,并将所述token、临时用户ID以及偏移因子发送给客户端;
token校验模块,用于提取客户端发送的请求参数中的时间戳、随机字符串、CheckB后,将时间戳除以偏移因子factor取余数remainder,然后从CheckB中的第remainder位取出临时用户ID和CheckA,根据临时用户ID从缓存中获取对应的token,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA’,比对CheckA’与CheckA,比对结果一致且在token的有效时间内,则客户端token有效。
8.一种token传输验证装置,其特征在于,用于客户端,包括:
参数获取模块,用于获取服务端发送的token、临时用户ID以及偏移因子;
发起请求模块,用于需发起请求时,根据当前的时间戳生成一段随机字符串,将时间戳+随机字符串+token进行拼接并计算md5值得到CheckA;时间戳除以偏移因子factor取余数remainder,将临时用户ID插入到CheckA的第remainder位中得到CheckB;客户端发起请求,在请求参数中传递时间戳、随机字符串、CheckB。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311675105.2A CN117879827A (zh) | 2023-12-07 | 2023-12-07 | 一种token传输验证方法、装置、系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311675105.2A CN117879827A (zh) | 2023-12-07 | 2023-12-07 | 一种token传输验证方法、装置、系统、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117879827A true CN117879827A (zh) | 2024-04-12 |
Family
ID=90589133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311675105.2A Pending CN117879827A (zh) | 2023-12-07 | 2023-12-07 | 一种token传输验证方法、装置、系统、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117879827A (zh) |
-
2023
- 2023-12-07 CN CN202311675105.2A patent/CN117879827A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114726643B (zh) | 云平台上的数据存储、访问方法及装置 | |
CN114900338B (zh) | 一种加密解密方法、装置、设备和介质 | |
CN109981285B (zh) | 一种口令保护方法、口令校验方法及系统 | |
CN106452764B (zh) | 一种标识私钥自动更新的方法及密码系统 | |
CN114124480B (zh) | 通信的认证方法、服务器、客户端、电子设备及存储介质 | |
CN110099048B (zh) | 一种云存储方法及设备 | |
CN1937498A (zh) | 一种动态密码认证方法、系统及装置 | |
CN111444499B (zh) | 用户身份认证方法及系统 | |
CN107454048A (zh) | 信息的处理方法及装置、信息的认证方法、装置及系统 | |
CN101420302A (zh) | 安全认证方法和设备 | |
CN107368737A (zh) | 一种防止拷贝攻击的处理方法、服务器及客户端 | |
US10122755B2 (en) | Method and apparatus for detecting that an attacker has sent one or more messages to a receiver node | |
CN111510442A (zh) | 一种用户验证方法、装置、电子设备及存储介质 | |
CN113032772A (zh) | 一种登录信息加密认证的方法和系统 | |
CN116743470A (zh) | 业务数据加密处理方法及装置 | |
CN114944921A (zh) | 登录认证方法、装置、电子设备及存储介质 | |
CN108933766B (zh) | 一种提高设备id安全性的方法和客户端 | |
CN107276967B (zh) | 一种分布式系统及其登录验证方法 | |
CN107404476B (zh) | 一种大数据云环境中数据安全的保护方法与装置 | |
CN116112234A (zh) | 一种电子签收安全校验方法、系统、介质及设备 | |
CN107171784B (zh) | 突发环境事件应急指挥调度方法及系统 | |
CN117879827A (zh) | 一种token传输验证方法、装置、系统、设备和介质 | |
CN113794568A (zh) | 接口安全验证方法、访问接口的方法、装置、设备和介质 | |
CN114329614A (zh) | 一种基于字符串混淆的数据脱敏方法及系统 | |
CN108833449B (zh) | 基于RAS算法的Web通信加密传输方法、装置及系统 |
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 |