CN114282267A - 令牌生成方法、令牌验签方法、装置、设备及存储介质 - Google Patents
令牌生成方法、令牌验签方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114282267A CN114282267A CN202111400776.9A CN202111400776A CN114282267A CN 114282267 A CN114282267 A CN 114282267A CN 202111400776 A CN202111400776 A CN 202111400776A CN 114282267 A CN114282267 A CN 114282267A
- Authority
- CN
- China
- Prior art keywords
- token
- information
- key
- key pair
- client
- 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 63
- 238000012795 verification Methods 0.000 title claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008929 regeneration Effects 0.000 claims description 8
- 238000011069 regeneration method Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种令牌生成方法、令牌验签方法、装置、设备、存储介质,包括:基于通过客户端获取的当前最新用户信息生成密钥对;构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。本申请通过将密钥生成过程与用户信息相结合,避免了在用户修改密码后、服务端修改了某个用户的权限或者角色时,令牌仍然有效的情况发生,提高了令牌和***的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种令牌生成方法、令牌验签方法、装置、设备及存储介质。
背景技术
在信息***中常使用JWT(Json web token,一种基于Json的开放标准)格式token(令牌),进行身份有效性验证,JWT是一种为了在网络应用环境间传递声明而执行的基于JSON的开放标准,该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO,Single Sign On)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
目前***中的JWT token,在使用过程中用户信息更改时,用户的token仍然有效,这给***带来了一定的安全风险。
发明内容
有鉴于此,本发明的目的在于提供一种令牌生成方法、令牌验签方法、装置、设备和存储介质,能够在当前最新用户信息改变时,使令牌无效,以提高***的安全性。其具体方案如下:
第一方面,本申请公开了一种令牌生成方法,应用于服务端,包括:
基于通过客户端获取的当前最新用户信息生成密钥对;
构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;
基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
可选的,所述基于通过客户端获取的当前最新用户信息生成密钥对,包括:
获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息;
利用预设信息摘要算法对所述当前最新用户信息进行摘要处理,以得到摘要信息;
利用预设非对称密钥生成算法对所述摘要信息进行运算,以得到当前的密钥对。
可选的,所述利用预设信息摘要算法对所述当前最新用户信息进行摘要处理,以得到摘要信息,包括:
利用预设随机数生成算法生成目标随机数;
利用预设信息摘要算法对所述当前最新用户信息和所述目标随机数进行摘要处理,以得到摘要信息。
可选的,所述基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,包括:
为所述密钥对配置相应的有效期,并创建与所述有效期对应的时间戳;
基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述时间戳构造相应的令牌。
可选的,所述基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述时间戳构造相应的令牌,包括:
利用预设对称加密算法对所述时间戳进行加密以得到加密后时间戳;
基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述加密后时间戳构造相应的令牌。
可选的,所述基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述时间戳构造相应的令牌,还包括:
判断当前是否满足密钥重新生成条件;
若是则重新执行所述基于通过客户端获取的当前最新用户信息生成密钥对的步骤;
其中,所述密钥重新生成条件包括所述时间戳对应的所述有效期已过期、对所述令牌的验签不通过以及用户信息发生变更中的任意一种条件。
第二方面,本申请公开了一种令牌验签方法,应用于客户端,包括:
向服务端发送当前最新用户信息,以便所述服务器基于所述当前最新用户信息生成密钥对,并基于所述密钥对中的私钥对待签名的目标信息进行签名以得到与所述当前最新用户信息对应的签名值,以及基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌;
获取所述服务端发送的所述令牌;
基于所述令牌中的所述公钥以及所述目标信息对所述令牌中的所述签名值进行验签。
第三方面,本申请公开了一种令牌生成装置,应用于服务端,包括:
密钥生成模块,用于基于通过客户端获取的当前最新用户信息生成密钥对;
信息构造模块,用于构造待签名的目标信息;
信息签名模块,用于基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;
令牌构造模块,用于基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌;
令牌发送模块,用于将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
第四方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如前述公开的方法的步骤。
第五方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的方法。
可见,本申请提供了一种令牌生成方法,包括:基于通过客户端获取的当前最新用户信息生成密钥对;构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。由此可见,本申请通过将密钥对的生成过程与当前最新用户信息相结合,即基于当前最新用户信息生成密钥对,以便在用户信息发生变化时使令牌同时进行更新,进而使得当用户信息改变时,客户端验签失败,提高了令牌和***的安全性,保证了用户进行相关敏感操作后继续访问***的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种令牌生成方法流程图;
图2为本申请公开的一种具体的令牌生成方法流程图;
图3为本申请公开的一种具体的令牌生成方法流程图;
图4为本申请公开的一种令牌验签方法流程图;
图5为本申请提供的令牌生成方法结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,原标准生成密钥时,采用服务器固定密钥形式,不以用户为区分,因此,当用户修改密码、服务端修改了用户具有的权限或者角色时,令牌仍然有效。为此,本申请提供了一种令牌生成方法,提高了令牌和***的安全性,保证了用户进行相关敏感操作后继续访问***的安全性。
本发明实施例公开了一种令牌生成方法,参见图1所示,该方法包括:
步骤S11:基于通过客户端获取的当前最新用户信息生成密钥对。
本实施例中,服务端获取客户端发送的当前最新用户信息,然后基于所述当前最新用户信息生成密钥对,所述密钥对包含公钥和私钥,并将所述私钥保留在服务端,将所述公钥公开给客户端。可以理解的是,将密钥对的生成过程与***中的当前最新用户信息相结合,也即,将***中的权限角色信息以及用户密码作为密钥对生成的输入参数,实现一个用户对应一对公私钥的形式,因此当用户权限角色信息或密码这类关键信息发生变更后,密钥对也会随之变更,保证了用户进行相关敏感操作后,继续访问***的安全性。
步骤S12:构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值。
本实施例中,生成密钥对之后,构造待签名的目标信息,然后基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值。例如,令牌由三部分组成,并且三部分之间用圆点(.)连接。这三部分分别是Header(头部),Payload(载荷),Signature(签名)。可以理解的是,所述目标信息包含Header和Payload,所述与所述当前最新用户信息对应的签名值即为Signature。
步骤S13:基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
本实施例中,得到与所述当前最新用户信息对应的签名值之后,将所述目标信息、所述签名值以及所述密钥对中的公钥整合起来以构造相应的令牌,然后将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。然后判断当前是否满足密钥重新生成条件,若满足密钥重新生成条件,则重新执行所述基于通过客户端获取的当前最新用户信息生成密钥对的步骤,若不满足密钥重新生成条件,则结束当前进程。需要指出的是,所述密钥重新生成条件包括所述时间戳对应的所述有效期已过期、对所述令牌的验签不通过以及用户信息发生变更中的任意一种条件。
例如,当接收到所述客户端发送的获取新密钥请求时,表明所述公钥的有效期显示已过期,满足所述密钥重新生成条件中所述时间戳对应的所述有效期已过期的条件,因此重新执行所述基于通过客户端获取的当前最新用户信息生成密钥对的步骤,以生成新的公钥并将所述新的公钥发送至客户端。需要指出的是,所述客户端接收到所述新的公钥之后,将所述新的公钥进行本地缓存,并且在新的公钥有效期内部再次向所述服务端发送获取新的公钥请求。
可以理解的是,令牌是服务端生成的一串字符串,以作为客户端进行请求的一个令牌,当第一次登录后,服务器生成一个令牌并将此令牌返回给客户端,以后客户端只需带上这个令牌前来请求数据即可,无需再次带上用户名和密码。具体到令牌中,Header字段变更,添加了新的对称加密算法,Payload字段仍保持原样,没有发生变更,Signature字段,即使用新的计算形式计算出签名字段,替换原始Signature字段即可。可以理解的是,都是一串String类型的字符串,只是生成字符串的算法进行了变更,以满足设计目的。
可见,本申请提供了一种令牌生成方法,包括:基于通过客户端获取的当前最新用户信息生成密钥对;构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。由此可见,本申请通过将密钥对的生成过程与当前最新用户信息相结合,即基于当前最新用户信息生成密钥对,以便在用户信息发生变化时使令牌同时进行更新,进而使得当用户信息改变时,客户端验签失败,提高了令牌和***的安全性,保证了用户进行相关敏感操作后继续访问***的安全性。
参见图2所示,本发明实施例公开了一种令牌生成方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S21:获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息。
本实施例中,首先获取客户端发送的当前最新用户信息,所述当前最新用户信息包含当前用户密码和当前角色权限信息。可以理解的是,将所述当前用户密码和所述当前角色权限信息作为密钥对生成的输入参数,当这类关键信息发生变更后,密钥对也会随之变更。另外,所述关键信息包括但不限于所述当前用户密码和所述当前角色权限信息,可以根据实际情况进行自定义设定。
步骤S22:利用预设信息摘要算法对所述当前最新用户信息进行摘要处理,以得到摘要信息。
本实施例中,获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息之后,利用预设随机数生成算法生成目标随机数,然后利用预设信息摘要算法对所述当前最新用户信息和所述目标随机数进行摘要处理,以得到摘要信息。需要指出的是,所述预设信息摘要算法可以包括但不限于MD5(Message-Digest Algorithm,消息摘要算法)、SHA(Secure Hash Algorithm,安全散列算法)、MAC(Hash Message AuthenticationCode,散列消息鉴别码)算法等。
可以理解的是,创建所述目标随机数,是为了在所述当前最新用户信息未发生改变时,所述摘要信息会随着所述目标随机数的改变和变化,以便生成不同的密钥对。
步骤S23:利用预设非对称密钥生成算法对所述摘要信息进行运算,以得到当前的密钥对。
本实施例中,利用存储在服务端内的私钥,通过预设的非对称密钥生成算法对所述摘要信息进行运算,以得到当前的密钥对。可以理解的是,所述非对称密钥生成算法为RSA(Rivest-Shamir-Adleman)算法,还可以是Elgamal加密算法、背包算法、ECC(ErrorCorrecting Code,椭圆曲线加密算法)等其他算法。
例如:SEED_RSA_SECRET(HMACSHA256(userinfo))中,userinfo为用户信息,HMACSHA256为预设信息摘要算法,RSA_SECRET为非对称密钥生成算法,SEED表示以摘要为特征。
步骤S24:构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值。
步骤S25:基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
关于上述步骤S24、S25的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例在获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息之后,利用随机数生成算法生成目标随机数,并利用预设信息摘要算法对所述当前最新用户信息和所述目标随机数进行摘要处理,得到摘要信息,然后利用预设非对称密钥生成算法对所述摘要信息进行运算,得到当前的密钥对。本申请实施例通过将密钥生成过程与用户信息相结合,当当前用户密码和/或当前角色权限信息发生变更后,密钥对也会随之变更,保证了用户在进行相关敏感操作后继续访问***的安全性。
参见图3所示,本发明实施例公开了一种令牌生成方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S31:基于通过客户端获取的当前最新用户信息生成密钥对。
步骤S32:构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值。
步骤S33:为所述密钥对配置相应的有效期,并创建与所述有效期对应的时间戳。
本实施例中,为所述密钥对配置相应的有效期,并基于所述有效期创建与所述有效期对应的时间戳。可以理解的是,密钥有效期一般设置较短,例如在1至10分钟的区间内,以便客户端只能在短时间内使用所述密钥,一但超出所述时间戳设置的时间,密钥失效。其次,当用户进行登出或禁用等操作时,也可以及时保证在给定时间窗口内token及时失效。
步骤S34:利用预设对称加密算法对所述时间戳进行加密以得到加密后时间戳。
本实施例中,利用预设对称加密算法对所述时间戳进行加密以得到加密后时间戳。可以理解的是,将密钥有效期的时间戳以对称加密形式加密,然后附加到secret(密钥)的后面。所述对称加密算法包含:AES(Advanced Encryption Standard,高级加密标准)算法、DES(Data Encryption Standard,数据加密标准)算法、3DES或称为Triple DES(TripleData Encryption Algorithm,三重数据加密算法)等。令牌中的Header部分由:
{
'alg':"HS256",
'typ':"JWT"
}
变更为:
{
'alg':"HS256",
'alg-cryptoperiod':"AES",
'typ':"JWT"
}
'alg':"HS256"表示预设信息摘要算法,'typ':"JWT"表示是一种基于JSON的开放标准((RFC 7519),'alg-cryptoperiod':"AES"表示增加了AES算法,同时所述AES算法可灵活替换为其他对称加密算法。需要指出的是,所述用于对称加密的对称性密钥有服务端与客户端双方协商确定。
步骤S35:基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述加密后时间戳构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
本实施例中,基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述加密后时间戳构造相应的令牌。可以理解的是,将所述加密后时间戳附加到secret(密钥)的后面,例如:
RS256(base64UrlEncode(header)+"."+base64UrlEncode(payload),SEED_RS A_SECRET(HMACSHA256(userinfo))+AES(timestamp,aes_secret))
式中的AES(timestamp,aes_secret)即为加密时间戳。
关于上述步骤S31、S32的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例引入了密钥有效期的概念,对所述密钥对设置有效期并生成对应的时间戳,然后利用双方协商得出的对称性密钥对所述时间戳进行加密,以得到加密后时间戳,并将所述加密时间戳附加到密钥后随着令牌一起发送至客户端,以便当客户端获取发现密钥到期后,将自动更新密钥然后进行验签过程。解决了密钥被恶意破解后的***安全性问题,提高了令牌的安全性,其次,当用户进行登出,或禁用等操作时,也可以及时保证在给定时间窗口内token及时失效。
参见图4所示,本发明实施例公开了一种令牌验签方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S41:向服务端发送当前最新用户信息,以便所述服务器基于所述当前最新用户信息生成密钥对,并基于所述密钥对中的私钥对待签名的目标信息进行签名以得到与所述当前最新用户信息对应的签名值,以及基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌。
本实施例中,当用户向客户端输入了用户信息之后,所述客户端向服务端发送当前最新用户信息,以便所述服务器基于所述当前最新用户信息生成密钥对,并基于所述密钥对中的私钥对待签名的目标信息进行签名以得到与所述当前最新用户信息对应的签名值,以及基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌。
步骤S42:获取所述服务端发送的所述令牌。
本实施例中,当所述服务端构造并发送所述令牌后,客户端获取所述服务端发送的所述令牌,以便进行验签操作。可以理解的是,上述令牌是服务器是否会对所述客户端发送的数据请求进行响应的凭证。
步骤S42:基于所述令牌中的所述公钥以及所述目标信息对所述令牌中的所述签名值进行验签。
本实施例中,获取令牌中的加密时间戳,然后利用所述对称性密钥解密所述加密时间戳,进而判断所述密钥是否有效,若所述密钥无效则需向所述服务端发出获取新密钥的请求,以便获取新的公钥,若所述密钥有效则利用所述公钥解密所述当前最新用户信息对应的签名值,以得到第一摘要信息,然后利用预设消息摘要算法对所述目标信息进行摘要得到第二摘要信息,对比所述第一摘要信息和所述第二摘要信息,若所述第一摘要信息和所述第二摘要信息一致则验签通过,若所述第一摘要信息和所述第二摘要信息不一致则验签失败。
可见,本申请提供了一种令牌验签方法,本申请通过向服务端发送当前最新用户信息,以便所述服务器基于所述当前最新用户信息生成密钥对以及基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,然后获取所述令牌并基于所述令牌中的所述公钥以及所述目标信息对所述令牌中的所述签名值进行验签,提高了令牌和***的安全性。
参见图5所示,本申请实施例还相应公开了一种令牌生成装置,包括:
密钥生成模块11,用于基于通过客户端获取的当前最新用户信息生成密钥对;
信息构造模块12,用于构造待签名的目标信息;
信息签名模块13,用于基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;
令牌构造模块14,用于基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌;
令牌发送模块15,用于将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
可见,本申请包括:基于通过客户端获取的当前最新用户信息生成密钥对;构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。由此可见,本申请通过将密钥对的生成过程与当前最新用户信息相结合,即基于当前最新用户信息生成密钥对,以便在用户信息发生变化时使令牌同时进行更新,进而使得当用户信息改变时,客户端验签失败,提高了令牌和***的安全性,保证了用户进行相关敏感操作后继续访问***的安全性。
在一些具体实施例中,所述密钥生成模块11,具体包括:
用户信息获取单元,用于获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息;
随机数生成单元,用于利用预设随机数生成算法生成目标随机数;
信息摘要单元,用于利用预设信息摘要算法对所述当前最新用户信息和所述目标随机数进行摘要处理,以得到摘要信息;
密钥生成单元,用于利用预设非对称密钥生成算法对所述摘要信息进行运算,以得到当前的密钥对。
在一些具体实施例中,所述令牌构造模块14,具体包括:
时间戳创建单元,用于为所述密钥对配置相应的有效期,并创建与所述有效期对应的时间戳;
时间戳加密单元,用于利用预设对称加密算法对所述时间戳进行加密以得到加密后时间戳;
令牌构造单元,用于基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述加密后时间戳构造相应的令牌。
在一些具体实施例中,所述令牌生成装置,还包括:
条件判断模块,用于判断当前是否满足密钥重新生成条件;
重新执行模块,用于若当前满足密钥重新生成条件则重新执行所述基于通过客户端获取的当前最新用户信息生成密钥对的步骤。
进一步的,本申请实施例还提供了一种电子设备。图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的令牌生成方法或令牌验签方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作***221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的令牌生成方法或令牌验签方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的令牌生成方法或令牌验签方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的令牌生成方法、令牌验签方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种令牌生成方法,其特征在于,应用于服务端,包括:
基于通过客户端获取的当前最新用户信息生成密钥对;
构造待签名的目标信息,并基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;
基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,并将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
2.根据权利要求1所述的令牌生成方法,其特征在于,所述基于通过客户端获取的当前最新用户信息生成密钥对,包括:
获取客户端发送的包含当前用户密码和当前角色权限信息的当前最新用户信息;
利用预设信息摘要算法对所述当前最新用户信息进行摘要处理,以得到摘要信息;
利用预设非对称密钥生成算法对所述摘要信息进行运算,以得到当前的密钥对。
3.根据权利要求2所述的令牌生成方法,其特征在于,所述利用预设信息摘要算法对所述当前最新用户信息进行摘要处理,以得到摘要信息,包括:
利用预设随机数生成算法生成目标随机数;
利用预设信息摘要算法对所述当前最新用户信息和所述目标随机数进行摘要处理,以得到摘要信息。
4.根据权利要求1所述的令牌生成方法,其特征在于,所述基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌,包括:
为所述密钥对配置相应的有效期,并创建与所述有效期对应的时间戳;
基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述时间戳构造相应的令牌。
5.根据权利要求4所述的令牌生成方法,其特征在于,所述基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述时间戳构造相应的令牌,包括:
利用预设对称加密算法对所述时间戳进行加密以得到加密后时间戳;
基于所述目标信息、所述签名值、所述密钥对中的公钥以及所述加密后时间戳构造相应的令牌。
6.根据权利要求4或5所述的令牌生成方法,其特征在于,还包括:
判断当前是否满足密钥重新生成条件;
若是则重新执行所述基于通过客户端获取的当前最新用户信息生成密钥对的步骤;
其中,所述密钥重新生成条件包括所述时间戳对应的所述有效期已过期、对所述令牌的验签不通过以及用户信息发生变更中的任意一种条件。
7.一种令牌验签方法,其特征在于,应用于客户端,包括:
向服务端发送当前最新用户信息,以便所述服务器基于所述当前最新用户信息生成密钥对,并基于所述密钥对中的私钥对待签名的目标信息进行签名以得到与所述当前最新用户信息对应的签名值,以及基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌;
获取所述服务端发送的所述令牌;
基于所述令牌中的所述公钥以及所述目标信息对所述令牌中的所述签名值进行验签。
8.一种令牌生成装置,其特征在于,应用于服务端,包括:
密钥生成模块,用于基于通过客户端获取的当前最新用户信息生成密钥对;
信息构造模块,用于构造待签名的目标信息;
信息签名模块,用于基于所述密钥对中的私钥对所述目标信息进行签名,以得到与所述当前最新用户信息对应的签名值;
令牌构造模块,用于基于所述目标信息、所述签名值以及所述密钥对中的公钥构造相应的令牌;
令牌发送模块,用于将所述令牌发送至所述客户端,以便所述客户端对所述令牌进行验签。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400776.9A CN114282267A (zh) | 2021-11-19 | 2021-11-19 | 令牌生成方法、令牌验签方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400776.9A CN114282267A (zh) | 2021-11-19 | 2021-11-19 | 令牌生成方法、令牌验签方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114282267A true CN114282267A (zh) | 2022-04-05 |
Family
ID=80869883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111400776.9A Pending CN114282267A (zh) | 2021-11-19 | 2021-11-19 | 令牌生成方法、令牌验签方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282267A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745115A (zh) * | 2022-04-25 | 2022-07-12 | 北京市商汤科技开发有限公司 | 一种信息传输方法、装置、计算机设备及存储介质 |
CN114826757A (zh) * | 2022-05-11 | 2022-07-29 | 中国农业银行股份有限公司 | 一种身份认证方法及装置 |
-
2021
- 2021-11-19 CN CN202111400776.9A patent/CN114282267A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745115A (zh) * | 2022-04-25 | 2022-07-12 | 北京市商汤科技开发有限公司 | 一种信息传输方法、装置、计算机设备及存储介质 |
CN114826757A (zh) * | 2022-05-11 | 2022-07-29 | 中国农业银行股份有限公司 | 一种身份认证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445614B (zh) | 证书申请方法、装置、终端设备、网关设备和服务器 | |
KR102117584B1 (ko) | 로컬 디바이스 인증 | |
CN106462715B (zh) | 访问以及提供对于在远程资源与数据处理设备之间发送的数据的访问的方法 | |
US11676133B2 (en) | Method and system for mobile cryptocurrency wallet connectivity | |
EP4181460A1 (en) | Service communication method, system and apparatus, and electronic device | |
US8296828B2 (en) | Transforming claim based identities to credential based identities | |
US11477188B2 (en) | Injection of tokens or client certificates for managed application communication | |
JP2018518738A (ja) | サーバまたは他の装置からのエントロピーに基づくクライアント装置の認証 | |
US20180020008A1 (en) | Secure asynchronous communications | |
EP1836798A2 (en) | Method and apparatus providing policy-based revocation of network security credentials | |
KR20060100920A (ko) | 웹 서비스를 위한 신뢰되는 제3자 인증 | |
JP2001229078A (ja) | 公開鍵暗号技術に基づいた認可インフラストラクチャ | |
US11363009B2 (en) | System and method for providing secure cloud-based single sign-on connections using a security service provider having zero-knowledge architecture | |
CN114282267A (zh) | 令牌生成方法、令牌验签方法、装置、设备及存储介质 | |
CN109981287A (zh) | 一种代码签名方法及其存储介质 | |
CN113748657A (zh) | 用于许可认证的方法、节点、***和计算机可读存储介质 | |
CN104683107A (zh) | 数字证书保管方法和装置、数字签名方法和装置 | |
CN111698264A (zh) | 用于保持用户认证会话的方法和装置 | |
CN113703911B (zh) | 一种虚拟机迁移方法、装置、设备、存储介质 | |
EP4203377A1 (en) | Service registration method and device | |
CN114826757A (zh) | 一种身份认证方法及装置 | |
US11888997B1 (en) | Certificate manager | |
JP2012181662A (ja) | アカウント情報連携システム | |
US11750391B2 (en) | System and method for performing a secure online and offline login process | |
KR101836211B1 (ko) | 전자 기기 인증 매니저 장치 |
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 |