一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

鉴权方法、装置、系统、电子设备及存储介质与流程

2023-08-18 09:10:01 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及信息安全、数据处理等技术领域。


背景技术:

2.为保护计算机硬件、软件、数据不因偶然或恶意的原因遭到破坏和泄露,需要鉴权方法。鉴权可以验证用户是否是合法用户,仅允许合法用户执行相应的业务操作,从一定程度上能够屏蔽掉恶意访问,以达到保证信息安全的目的。
3.相关技术中虽然提供了多种鉴权的方式,但从保护信息安全的角度看还有提升的空间。


技术实现要素:

4.本公开提供了一种鉴权方法、装置、系统、电子设备及存储介质。
5.根据本公开的一方面,提供了一种鉴权方法,包括:
6.在需要鉴权的情况下,接收第一令牌;
7.从第一令牌中解析出第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
8.基于第一随机排序标识从第一令牌中解析出至少两种信息中的每种信息;
9.基于每种信息分别对应的使用规则,生成第二令牌;
10.发送第二令牌以进行鉴权;
11.接收鉴权结果。
12.根据本公开的另一方面,提供了一种鉴权方法,包括:
13.发送第一令牌;第一令牌中包括至少两种信息以及第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
14.接收第二令牌;第二令牌是基于第一令牌生成的;
15.基于第二令牌进行鉴权,得到鉴权结果;
16.发送鉴权结果。
17.根据本公开的另一方面,提供了一种鉴权装置,包括:
18.第一接收模块,用于在需要鉴权的情况下,接收第一令牌;
19.第一解析模块,用于从第一令牌中解析出第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
20.第二解析模块,用于基于第一随机排序标识从第一令牌中解析出至少两种信息中的每种信息;
21.生成模块,用于基于每种信息分别对应的使用规则,生成第二令牌;
22.第一发送模块,用于发送第二令牌以进行鉴权;
23.第二接收模块,用于接收鉴权结果。
24.根据本公开的另一方面,提供了一种鉴权装置,包括:
25.第二发送模块,用于发送第一令牌;第一令牌中包括至少两种信息以及第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
26.第三接收模块,用于接收第二令牌;第二令牌是基于第一令牌生成的;
27.鉴权模块,用于基于第二令牌进行鉴权,得到鉴权结果;
28.第四发送模块,用于发送鉴权结果。
29.根据本公开的另一方面,提供了鉴权系统,包括:
30.调用方,用于执行本公开实施例中调用方的鉴权方法;
31.被调用方,用于执行本公开实施例中被调用方的鉴权方法。
32.根据本公开的另一方面,提供了一种电子设备,包括:
33.至少一个处理器;以及
34.与该至少一个处理器通信连接的存储器;其中,
35.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
36.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
37.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
38.本公开实施例中,对于基于第一随机排序方式得到的第一令牌,第一随机排序方式用于指示至少两种信息的排序顺序,由此第一令牌具有随机性。在此基础上,能够有效保证信息安全。
39.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
40.附图用于更好地理解本方案,不构成对本公开的限定。其中:
41.图1是根据本公开一实施例中相关技术中鉴权的场景示意图;
42.图2是根据本公开一实施例中鉴权方法的流程示意图;
43.图3a是根据本公开一实施例中第一令牌的示意图;
44.图3b是根据本公开另一实施例中第一令牌的示意图;
45.图3c是根据本公开另一实施例中第一令牌的示意图;
46.图4a是根据本公开一实施例中第一数据序列的示意图;
47.图4b是根据本公开另一实施例中第一数据序列的示意图;
48.图4c是根据本公开另一实施例中第一数据序列的示意图;
49.图5a是根据本公开一实施例中第二令牌的示意图;
50.图5b是根据本公开另一实施例中第二令牌的示意图;
51.图6是根据本公开另一实施例中鉴权方法的流程示意图;
52.图7是根据本公开一实施例中鉴权系统的整体流程示意图;
53.图8是根据本公开一实施例中鉴权装置的结构示意图;
54.图9是根据本公开另一实施例中鉴权装置的结构示意图;
55.图10是用来实现本公开实施例的鉴权方法的电子设备的框图。
具体实施方式
56.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
57.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
58.鉴权被用于各大领域中,例如车机鉴权、网络认证鉴权等。鉴权过程可以分为调用方以及被调用方,调用方可以理解为需要被鉴权的一侧,被调用方可以理解为对调用方进行鉴权的一侧。
59.传统的鉴权是通过密码来验证的,但该鉴权方式操作简单,一旦密码泄露,易导致信息泄露。
60.通常鉴权用于两个独立的电子设备或不同的应用。但本公开实施例提供的鉴权方法不仅适用于不同的电子设备或不同的应用,还可以适用于共享库。
61.随着计算机技术的发展,在应用程序以模块化设计的开发场景中,为了提高项目的开发效率,应用程序的功能模块以共享库的形式进行封装。
62.其中,共享库可以为.so(linux)、.dll(windows)、.dylib(macos)等。
63.共享库可以基于一组特定的函数符号,供应用程序对共享库中的库文件进行加载和调用,从而实现应用程序的功能扩展;对于公用的核心库文件,往往在多个项目中共享使用。该场景中,被调用方为共享库,调用方即为上层的应用程序。
64.在相关技术中,在对库文件进行加载和调用的情况下,如图1所示,需要加载指定的函数符号,以执行库文件的程序代码。在攻击者识别了调用程序代码的函数符号后,即可调用和运行该库中的库文件,从而会造成库文件泄露等风险。其中函数符号可以为函数名称、函数返回值、参数类型和个数等。
65.有鉴于此,本公开实施例提出了一种鉴权方法,可以应用于调用方,如图2所示,包括:
66.s201,在需要鉴权的情况下,接收第一令牌。
67.在一些实施例中,可以向被调用方发送调用请求。在被调用方接收到调用请求的情况下,生成第一令牌发送到调用方。本公开实施例中的令牌可以为token(身份认证凭证),由于token是一组随机的数据信息,因此具有随机性。而token在被调用方是以无固定形态的形式存在的,因此被调用方可以基于不同的信息生成token,因此该token具有可扩展性。
68.s202,从第一令牌中解析出第一随机排序标识;该第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序。
69.s203,基于第一随机排序标识从第一令牌中解析出至少两种信息中的每种信息。
70.s204,基于每种信息分别对应的使用规则,生成第二令牌。
71.本公开实施例中不同信息的使用规则可以相同也可以不同。可以根据实际情况确定。
72.s205,发送第二令牌以进行鉴权。
73.s206,接收鉴权结果。
74.本公开实施例中,第一令牌中包含第一随机排序标识,第一随机排序标识用于指示至少两种信息的排序顺序,由此第一令牌具有随机性,使得攻击者对于第一令牌的破解更加困难。在第一令牌基础上,使用一些操作生成第二令牌以进行鉴权,可以通过第一令牌的随机性和第二令牌完成鉴权过程,有利于保护信息安全。
75.在一些实施例中,第一令牌中的至少两种信息可包括以下信息中的至少两种:第一随机数、约定算法、噪音数据等。
76.该第一随机数可以基于rank函数生成,也可以使用时间戳,本公开实施例对此不进行限定。
77.该约定算法可以为以下算法中的任意一种:md5(message-digest algorithm 5,信息-摘要算法5)、sha-1(secure hash algorithm 1,安全散列算法1)、sha-2(安全散列算法2,secure hash algorithm 2)、aes-cbc(advanced encryption standard-cipher block chaining,密码分组链接模式)以及aes-ctr(advanced encryption standard-counter,计算器模式)等。
78.在支持多种算法作为约定算法的情况下,由于具备多种算法,调用方以及被调用方可以协商算法类型,使得约定算法不固定,由此使得鉴权的过程增加了随机性,进一步达到了保护信息安全的目的。
79.类似的,每次鉴权采用的噪音数据也并非一成不变的,由于噪音数据具备随机性,因此采用噪音数据生成的第二令牌,可以具备多样性,增加攻击者对该第二令牌进行破解的难度,进而无法鉴权通过,进而起到保护信息安全的作用。
80.本公开实施例中,基于第一随机数、约定算法、噪音数据等多个信息进行随机组合,使得生成的第一令牌的内部逻辑难以被破解,进而可以有效辨别未被授权的用户,由此有利于保证被调用对象的安全性。
81.综上所述,对调用方而言,包括解析第一令牌、生成第二令牌以鉴权的主要操作。下面对以上主要操作进行说明。
82.一、解析第一令牌
83.解析第一令牌包括从该第一令牌中解析出第一随机排序标识以及各个信息。在一些实施例中,第一随机排序标识可以在第一令牌的固定位置,也即默认位置。该种情况下,从第一令牌中解析出第一随机排序标识可实施为:在第一随机排序标识的位置为默认位置的情况下,从第一令牌的默认位置中解析出第一随机排序标识。
84.假设第一随机排序标识的长度为第一长度,该默认位置可以为第一令牌中从首位开始的第一长度,或第一令牌位于最后位置的第一长度。
85.其中,举例来说,假设第一令牌中包括第一随机数和约定算法。其中第一随机数的标识为a,约定算法的标识为b。第一随机排序标识可以表示为ab,第一令牌可表示为“ab-第一随机数-约定算法”。
86.当然,在第一令牌为二进制数据流的情况下,第一随机排序标识所占的比特位可基于需要排序的信息总数确定。即第一随机排序标识所占的比特位能够表达的数值上限要大于所有的排序方式。
87.假设需要排序的信息总共有3种,则所有排序方式有9种,第一随机排序标识所占的比特位可以为4位。由此,采用不同的比特位取值即可标识不同的排序方式,例如0000表示第一种排序方式,0001表示第二种排序方式。
88.举例来说,如图3a所示,在默认位置为第一令牌的起始位置的情况下,使用1个字节表示第一随机排序标识,依序后面1字节表示约定算法的标识,8字节表示第一随机数,4字节表示约定算法的扩展数据,用该数据结构表示第一令牌。
89.再例如图3b所示,在默认位置为第一令牌位于最后位置的情况下,1字节表示约定算法的标识,8字节表示第一随机数,4字节表示约定算法的扩展数据,最后使用1字节表示第一随机排序标识,可以用该数据结构表示第一令牌。
90.当然,可以理解的是,第一随机排序标识在第一令牌中的位置也可以是动态变化的。例如可以周期性变化。举例来说,可以周一、周三、周五、周日的第一随机排序标识的位置在第一令牌的起始位置,周二、周四、周六的第一随机排序标识的位置在第一令牌的最后位置。当然,也可以不随周期性变化,调用方以及被调用方协商一致即可。
91.解析第一令牌包括从该第一令牌中解析出第一随机排序标识以及各个信息。在一些实施例中,第一随机排序标识可以在第一令牌的动态位置,该种情况下,从第一令牌中解析出第一随机排序标识可实施为:在第一随机排序标识的位置为动态位置的情况下,从第一令牌中检索目标标记;基于目标标记,从第一令牌中获取第一随机排序标识。
92.其中,目标标记可以为对第一随机排序标识的起始位置进行标记,并基于第一随机排序标识的第一长度,得到第一随机排序标识的位置信息,进而从第一令牌中获取第一随机排序标识。
93.可以采用特殊的二进制符号来表示第一随机排序标识的起始位置。如图3c所示,第一令牌的数据结构为约定算法的标识-第一随机数-101010(即特殊符号表述的目标标记)-第一随机排序标识-扩展数据。则在第一令牌中检索特殊符号,其后即为第一随机排序标识。
94.本公开实施例中,第一随机排序标识的位置可以为默认位置,也可以为动态位置。由于该第一随机排序标识的内部逻辑具有随机性,因此使得生成的第一令牌具有随机性和多样性,可以保证鉴权结果的准确性,从而有效保证被调用方的信息安全。
95.如前文阐述的,需要从第一令牌中解析出多种信息。在一些实施例中,基于第一随机排序标识从第一令牌中解析出至少两种信息中的每种信息,可实施为:
96.步骤a1,从第一令牌中剔除掉第一随机排序标识,获取剩余信息。
97.步骤a2,基于第一随机排序标识对应的第一排序方式,确定每种信息在剩余信息中的位置。
98.步骤a3,基于每种信息在第一令牌中的位置以及每种信息的长度,从第一令牌中解析出每种信息。
99.其中,第一令牌的结构可如前述图3a、图3b或图3c所示,本公开实施例对此不进行限定。
100.本公开实施例中,由于是基于第一随机排序方式构建的第一令牌,由此可以基于第一随机排序方式准确的解析第一令牌,从而有序完成高随机性的鉴权过程,为保护信息安全奠定了基础。
101.二、构建第二令牌以供被调用方鉴权
102.本公开实施例中,基于前述方式从第一令牌中得到的两种信息,基于这两种信息构建第二令牌,进行详细说明:
103.1)第一令牌中包括第一随机数和约定算法
104.在一些实施例中,基于每种信息分别对应的使用规则,生成第二令牌,可实施为:
105.步骤b1,基于第一随机数、约定算法中的扩展数据、以及待调用对象的业务参数,构建第一数据序列。
106.其中,当约定算法为aes加密算法时,约定算法中的扩展数据可以存储随机密钥和随机初始化向量(iv),当约定算法为md5、sha-1等其他摘要算法时,约定算法中的扩展数据为空。
107.在一些实施例中,构建第一数据序列的方式可以为固定排序方式,也可以为动态排序方式。
108.其中,在基于固定排序方式构建第一数据序列的情况下,可以依序为使用8字节表示第一随机数,4字节表示约定算法中的扩展数据的长度,扩展数据,4字节表示待调用对象的业务参数的数据长度,4字节表示业务参数中的第一子参数1的数据长度,第一子参数1的数据,4字节表示业务参数中的第二子参数2的数据长度,第二子参数2的数据,

4字节表示第n子参数n的数据长度,第n子参数n的数据。
109.当然,固定排序方式还可以依序为约定算法中的扩展数据、第一随机数、待调用对象的业务参数。本公开实施例对于具体的排序方式不进行限定。当然,固定顺序可以基于实际情况进行确定,也可以周期性进行更改。
110.其中,第一数据序列中各信息的动态排序方式可以采用第二随机排序标识来表示。可以理解为基于第二随机确定用于构建第一数据序列中各信息的排序。
111.假设第二随机的长度为第二长度,第二随机排序标识可以位于第二令牌的默认位置,也可以为动态位置。该默认位置可以为第二令牌中从首位开始的第二长度,或第二令牌位于最后位置的第二长度。
112.举例来说,第一随机数的标识为a,约定算法中的扩展数据的标识为b,由于可能调用的待调用对象需要业务参数作为入参,因此业务参数中可能存在多个子参数。第一子参数标识可表示为c1,第二子参数标识可表示为c2,以此类推。在第二随机排序标识可以表示为“ac1c2b”,第一数据序列可表示为“ac1c2b-第一随机数-第一子参数标识-第二子参数标识-约定算法中的扩展数据”。
113.当然,在第一数据序列为二进制数据流的情况下,第二随机排序标识在第二令牌中所占的比特位可基于需要排序的信息总数确定。即第二随机排序标识所占的比特位能够表达的数值上限要大于所有的排序方式。假设第一数据序列中需要排序的信息总共有3种,则所有排序方式有9种,则第二随机排序标识所占的比特位可以为4位。由此,采用不同的比特位取值即可标识不同的排序方式,例如0001表示第一种排序方式,0010表示第二种排序方式。
114.举例来说,在增加第二随机排序标识构建第一数据序列的情况下,如图4a所示,第二随机排序标识为第一数据序列的起始位置,使用1个字节表示第二随机排序标识,后面依序为8字节表示第一随机数,4字节表示约定算法的扩展数据,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数n的数据,以此类推,用该数据结构构建第一数据序列。
115.举例来说,在增加第二随机排序标识构建第一数据序列的情况下,如图4b所示,在第二随机排序标识位于第一数据序列的最后位置,依序为8字节表示第一随机数,4字节表示约定算法的扩展数据,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,最后使用1个字节表示第二随机排序标识。以此类推,用该数据结构构建第一数据序列。
116.当然,在增加第二随机排序标识构建第一数据序列的情况下,第二随机排序标识也可以为动态位置,如图4c所示,可以采用目标标记来表示第二随机排序标识的起始位置。其中目标标记可以为特殊的二进制符号。第一数据序列的数据结构可以为“第一随机数-101010(即特殊符号)-第二随机排序标识-约定算法的扩展数据-业务参数”。
117.需要说明的是,以上实施例中的字节数仅用于示例,具体每个信息所占据的字节数量可以基于实际情况设定。
118.此外,第二随机排序标识用于确定构建第一数据序列的方式,由于可以随机排序,因此第二随机排序标识在每次进行鉴权时可以不同。
119.本公开实施例中,支持使用固定排序方式或动态排序方式构建第一数据序列,以使得第一数据序列具有多样性,由此保证鉴权结果的准确性,尽可能识别出未授权的第三方,有利于保护信息安全。
120.步骤b2,基于约定算法处理第一数据序列,得到第一校验码。
121.其中,该实施例中约定算法被携带在第一令牌中,因此可以从第一令牌中获取约定算法,以达到两端使用相同算法的目的,以便于后续基于校验码进行鉴权。
122.步骤b3,基于第一校验码、第一随机数和业务参数,生成第二令牌。
123.在一些实施例中,基于第一校验码以及业务参数生成的第二令牌,由于后续需要被调用方对其进行解析,因此将需要将各个信息的长度写入第二令牌中。在第一数据序列采用双方约定的固定排序方式的情况下,第二令牌的数据结构如图5a所示,前4个字节表示数据总长即第二令牌的总长度,后面依序为4个字节的第一随机数,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,4个字节的第一校验码长度,以及第一校验码。
124.在一些实施例中,为了便于被调用方正确解析第二令牌,在采用动态排序方式的情况下,基于第一校验码、第一随机数和业务参数,生成第二令牌,可实施为:
125.步骤c1,生成动态排序方式对应的第二随机排序标识。
126.步骤c2,对第一校验码、第一随机数、第二随机排序标识以及业务参数按照预设数据结构进行封装,得到第二令牌。
127.举例来说,第二随机排序标识的长度为第二长度,第一随机数的标识为a、业务参数的标识为b、第一校验码的标识为c,第二随机排序标识为acb,在预设数据结构中要求第二随机排序标识位于第二令牌的起始位置的情况下,第二令牌的预设数据结构可以表示为“acb-第一随机数-第一校验码-业务参数”。当然,在第二令牌为二进制数据流的情况下,第二随机排序标识所占的比特位可基于需要排序的信息总数确定。
128.在第二随机排序标识为第二令牌的起始位置的情况下,对第一校验码、第一随机数、第二随机排序标识以及业务参数按照预设数据结构进行封装,得到第二令牌。该第二令牌中前1个字节表示第二随机排序标识,后面依序为4个字节表示数据总长,8个字节表示第一随机数,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,4个字节的第一校验码长度,以及第一校验码。
129.在第二随机排序标识为第二令牌的最后位置的情况下,该第二令牌的预设数据结构可表示为,前面4个字节表示数据总长,后面依序为8个字节表示第一随机数,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,4个字节的第一校验码长度,以及第一校验码,1个字节表示第二随机排序标识。
130.当然,第二随机排序标识在第二令牌中的位置也可以位于动态位置,可以采用特定标记来表示第二随机排序标识的起始位置。其中特定标记可以为特殊的二进制符号。该特定标记例如可以为101010,也可以为10000001。特定标记可以和前述的目标标记相同,也可以不同。
131.本公开实施例中,基于第二随机排序标识生成的第二令牌的内部逻辑更为复杂,进而提高鉴权结果的准确性,有利于甄别出未授权的第三方,以保证信息安全。
132.前文阐述了第二随机排序标识携带在第二令牌中,以便于将第一数据序列的动态排序方式显式的通知给被调用方。
133.为了进一步提高鉴权的准确性,有效保护信息安全,第二随机排序标识可以隐式的通知给被调用方。由此,在采用动态排序方式构建第一数据序列的情况下,可对第一随机数和第二随机排序标识进行加密,以生成第二令牌,可实施为:
134.步骤d1,对第一随机数和动态排序方式的第二随机排序标识执行可逆运算,得到中间结果。
135.步骤d2,对中间结果、业务参数以及第一校验码,按照预设数据结构进行封装,得到第二令牌。
136.举例来说,可以对第一随机数和第二随机排序标识执行异或运算,得到中间结果,将中间结果、业务参数以及第一校验码基于预设数据结构进行封装。其中预设数据结构可以如图5b所示。前4个字节表示数据总长,后面依序为4个字节表示的中间结果,4个字节表示业务参数总长度,4个字节表示业务参数第一子参数长度,第一子参数的数据,4个字节表示第二子参数长度,第二子参数的数据,4个字节表示第n子参数长度,第n子参数的数据,4个字节的第一校验码长度,以及第一校验码。
137.本公开实施例中,基于该方式生成的中间结果是第一随机数以及第二随机排序标识的密文,进而基于该中间结果生成的第二令牌的内部逻辑更为复杂,进而提高鉴权结果
的准确性,有利于甄别出未授权的第三方,以保证信息安全。
138.综上所述,本公开实施例中,基于多样性以及约定算法的一致性,生成用于鉴权的第二令牌,有利于保证鉴权的有效性以及准确性。
139.2)第一令牌中包括第一随机数和噪音数据
140.在一些实施例中,基于每种信息分别对应的使用规则,生成第二令牌,可实施为:
141.步骤e1,基于第一随机数、噪音数据和待调用对象的业务参数,构建第一数据序列。
142.其中,噪音数据可以为一些无规律的数据信息。
143.在一些实施例中,和前文描述一致,构建第一数据序列的方式可以为固定排序方式,也可以为动态排序方式。
144.在基于固定排序方式的情况下,构建的第一数据序列可以依序包括使用8字节表示第一随机数,4字节表示噪音数据,4字节表示待调用对象的业务参数的数据长度,4字节表示业务参数中第一子参数的数据长度,第一子参数的数据,4字节表示第二子参数的数据长度,第二子参数的数据,

4字节表示第n子参数的数据长度,第n子参数的数据。当然,固定排序方式可以基于实际情况确定,本公开实施例对此不进行限定。
145.在基于动态排序方式构建第一数据序列的情况下,动态排序可以采用第二随机排序标识来表示。可以理解为基于第二随机排序标识对第一随机数、噪音数据、待调用对象的业务参数进行排序。
146.举例来说,第一随机数的标识为a,噪音数据的标识为d,由于可能调用的待调用对象需要业务参数作为入参,因此业务参数中可能存在多个子参数。第一子参数标识可表示为c1,第二子参数标识可表示为c2,以此类推。在第二随机排序标识可以表示为“ac1c2d”,第一数据序列的数据结构可表示为“第一随机数-第一子参数标识-第一子参数-第二子参数标识-第二子参数

第n子参数标识-第n子参数-噪音数据”。
147.当然,第二随机排序标识也可以用于构建第一数据序列。本公开实施例中可适当增减第一数据序列中的信息种类。
148.在第二令牌为二进制数据流的情况下,第二随机排序标识所占的比特位可基于需要排序的信息总数确定。
149.举例来说,在第二随机排序标识为第一数据序列的起始位置的情况下,使用1个字节表示第二随机排序标识,后面依序为8字节表示第一随机数,4字节表示噪音数据,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,以此类推,用该数据结构构建第一数据序列。
150.举例来说,在第二随机排序标识为第一数据序列的最后位置的情况下,依序为8字节表示第一随机数,4字节表示噪音数据,4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,以此类推,最后使用1个字节表示第二随机排序标识,用该数据结构构建第一数据序列。
151.当然,第二随机排序标识也可以为动态位置,可以采用特定标记来表示第二随机排序标识的起始位置。其中特定标记可以为特殊的二进制符号。第一数据序列的数据结构
可以为“第一随机数-101010(即特定标记)-第二随机排序标识-噪音数据-业务参数”,其中具体每个信息所占据的字节数量可以基于实际情况设定。
152.步骤e2,基于预设筛选规则,从多个候选算法中筛选出约定算法。
153.其中,预设筛选规则可以由调用方以及待调用方共享,以便于二者能够采用相同的预设筛选规则筛选出相同的约定算法。
154.步骤e3,基于约定算法处理第一数据序列,得到第一校验码。
155.步骤e4,基于第一校验码、第一随机数和业务参数,生成第二令牌。
156.在采用动态排序方式构建第一数据序列的情况下,生成的第二令牌,可以如前文所阐述的内容。
157.对第一随机数和动态排序方式的第二随机排序标识执行可逆运算,得到中间结果;将中间结果、业务参数以及第一校验码,按照预设数据结构进行封装,得到第二令牌。其中具体的实施方式与前文相似,本公开实施例在此不进行赘述。
158.在另一种实施例中,为了便于被调用方正确解析第二令牌,在采用动态排序方式的情况下,基于第一校验码、第一随机数和业务参数,生成第二令牌,可实施为:生成动态排序方式对应的第二随机排序标识;对第一校验码、第一随机数、第二随机排序标识以及业务参数,按照预设数据结构进行封装,得到第二令牌。
159.其中,第二随机排序标识携带在第二令牌中的方式可如图5b所描述的形式,这里不再进行一一赘述。
160.本公开实施例中,采用第一随机数和噪音数据构建第一令牌,基于随机数的时效性以及噪音数据的随机性生成用于鉴权的第二令牌,有利于保证鉴权的有效性以及准确性,达到保护信息的目的。
161.3)第一令牌中包括约定算法和噪音数据
162.在一些实施例中,基于每种信息分别对应的使用规则,生成第二令牌,可实施为:
163.步骤f1,基于约定算法中的扩展数据、噪音数据,以及待调用对象的业务参数,构建第一数据序列。
164.其中,同样的,第一数据序列的构建方式可以使用固定排序方式,也可以使用动态排序方式,本公开对此不进行限定。
165.例如,增加第二随机排序标识构建第一数据序列的情况下,第二随机排序标识在第一数据序列中的位置也可以为动态位置。可以采用特定标记来表示第二随机排序标识在第一数据序列中的起始位置。其中特定标记可以为特殊的二进制符号。第一数据序列的数据结构可表示为“约定算法的扩展数据-101010(即特定标记)-第二随机排序标识-噪音数据-业务参数”。
166.步骤f2,基于约定算法处理第一数据序列,得到第一校验码。
167.步骤f3,基于第一校验码和业务参数,生成第二令牌。
168.举例来说,在采用固定排序方式构建第一数据序列的情况下,基于预设数据结构生成的第二令牌可以表示为:前4个字节表示数据总长,后面依序为4个字节表示业务参数长度,4个字节表示第一子参数的长度,第一子参数的数据,4个字节表示第二子参数的长度,第二子参数的数据,4个字节表示第n子参数的长度,第n子参数的数据,4个字节的第一校验码长度、第一校验码以及第二随机排序标识。
169.在一些实施例中,为了便于被调用方正确解析第二令牌,在采用动态排序方式的情况下,基于第一校验码、第二随机排序标识和业务参数,生成第二令牌,可实施为:生成动态排序方式对应的第二随机排序标识;对第一校验码、第二随机排序标识、以及业务参数,并按照预设数据结构进行封装,得到第二令牌。
170.其中,第二随机排序标识的位置信息可如前文所描述的,在第二令牌的固定位置或动态位置。这里不再进行一一赘述。
171.本公开实施例中,采用约定算法和噪音数据构建第一令牌,基于约定算法的一致性以及噪音数据的随机性生成用于鉴权的第二令牌,有利于保证鉴权的有效性以及准确性。
172.综上所述,通过预设数据结构确定了采用各种信息构建第二令牌的方式,实施时,该预设数据结构可以是固定的,也可以是动态变化的。在固定的情况下,调用方和被调用方采用一致的预设数据结构构建和解析第二令牌。在动态变化的情况下,第二令牌中可携带用于标识具体的数据结构的指示信息,以便于被调用方通过该指示信息正确的解析第二令牌。
173.基于相同的技术构思,本公开实施例提出了一种鉴权方法,应用于被调用方,如图6所示,可实施为:
174.s601,发送第一令牌;该第一令牌中包括至少两种信息以及第一随机排序标识;该第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序。
175.s602,接收第二令牌;第二令牌是基于第一令牌生成的。
176.s603,基于第二令牌进行鉴权,得到鉴权结果。
177.s604,发送鉴权结果。
178.本公开实施例中,基于第一随机排序方式得到的第一令牌,第一随机排序方式用于指示至少两种信息的排序顺序,因此使得第一令牌具有随机性,基于第一令牌生成第二令牌当然也具备随机性,基于充满随机性的第一令牌构建第二令牌以完成鉴权,有利于通过随机多样的第一令牌保护信息安全。
179.在一些实施例中,至少两种信息包括以下信息中的至少两种:第一随机数,约定算法、噪音数据。
180.该第一随机数可以基于rank函数生成,也可以使用当前的时间戳,本公开对此不进行限定。
181.该约定算法的类型与前文相似,这里不再进行一一赘述。由于具备多种算法方式,调用方以及被调用方可以协商算法类型,使得算法类型不固定,进而起到保护被调用对象的作用。
182.由于噪音数据也可以具备随机性,因此采用噪音数据生成的第二令牌,可以具备多样性,使得第二令牌也是多样化变化的,进而达到保护信息安全的作用。
183.本公开实施例中,基于第一随机数,约定算法、噪音数据各个信息,生成的第一令牌可以有效辨别未被授权的第三方,进而有利于保证信息安全。
184.在一些实施例中,为了进一步提高鉴权的准确性,在至少两种信息中包括约定算法的情况下,还包括基于下述方式生成第一令牌,可实施为:从多个候选算法中,随机选择一个候选算法作为约定算法;基于第一随机排序标识对包含约定算法的至少两种信息进行
排序,生成第一令牌。
185.其中,前文已经产生了构建第一令牌的具体方式,第一令牌的具体结构可参见图3a、3b、3c中任意一张图所示。
186.本公开实施例中,可从多种候选算法中选择出约定算法,增加了第一令牌的随机性和多样性,由此有利于进一步提高信息安全性。
187.本公开实施例中,为了进一步保证信息安全,调用方生成的第二令牌也具备多样性,为了能够准确高效的进行鉴权,下面对每种第二令牌的鉴权方式进行说明:
188.1)至少两种信息中包括第一随机数和约定算法
189.在一些实施例中,基于第二令牌进行鉴权,得到鉴权结果,可实施为:
190.步骤g1,从第二令牌中获取第二随机数、第一校验码,以及待调用对象的业务参数。
191.其中,为便于区分被调用方存储的第一随机数,后文将第二令牌中包含的第一随机数称之为第二随机数。
192.其中,如前文所阐述的,采用多种信息构建第一数据序列,其中,多种信息的排序方式可以为固定排序方式,也可以为动态排序方式。
193.在采用固定排序方式构建第一数据序列的情况下,被调用方基于该固定排序方式可从第二令牌中解析出第二随机数、第一校验码,以及业务参数。
194.在一些实施例中,在采用动态排序方式构建第一数据序列的情况下,第二令牌中包括用于表示动态排序方式的第二随机排序标识。相应的,在第二随机排序标识位于第二令牌的固定位置的情况下,则可以从该固定位置中解析出第二随机排序标识。在第二随机排序标识位于第二令牌的动态位置的情况下,从第二令牌中获取第二随机数,可实施为:从第二令牌中获取第二令牌中信息的第三排序方式;基于第三排序方式,确定第二随机数在第二令牌中的位置信息;基于第二随机数在第二令牌中的位置信息以及第二随机数的长度,得到第二随机数。
195.当然,可以理解的是,基于第三排序方式不仅可以得到第二随机数,也可以得到其他信息。
196.第三排序方式在第二令牌中的位置可以为默认位置,也可以为动态位置。为动态位置的情况下,与前文关于第一随机排序标识和第二随机排序标识的位置类似,也可以采用特殊的位置标记,来指示第三排序方式在第二令牌中的位置信息,本公开实施例在这里不进行一一赘述。
197.本公开实施例中,基于第三排序方式可以准确的得到第二随机数的位置信息,进而从第二令牌中获取第二随机数,为后续准确的鉴权和保护信息安全提供了基础。
198.前文产生了第二随机排序标识显式的包含在第二令牌的处理方式。本公开实施例中,为了能够保护信息安全,第二随机排序标识和第二随机数还可以密文的形式存在于第二令牌中。该种情况下,从第二令牌中获取第二随机数,可实施为:从第二令牌中获取中间结果;中间结果是对第二随机数和动态排序方式的第二随机排序标识执行可逆运算得到的;对中间结果执行可逆运算的逆运算,得到第二随机数和第二随机排序标识。
199.其中,由于中间结果是由第二随机数和第二随机排序标识进行可逆运算得到的,因此对中间结果进行可逆运算的逆运算即可获取第二随机数和第二随机排序标识。其中,
可逆运算可以为异或运算。
200.本公开实施例中,第二随机排序标识和随机数是以密文形式传输的,由此有利于保证鉴权的准确性,有利于保护信息安全。
201.步骤g2,基于第一随机数、约定算法中的扩展数据、以及业务参数,构建第二数据序列。
202.其中,需要说明的是被调用方和调用方使用一致的方式构建数据序列即可准确的执行鉴权操作。
203.参见调用方构建第一数据序列的方式,对被调用方而言,构建第二数据序列的方式可以为固定排序方式,也可以为动态排序方式。
204.其中,在需要基于固定排序方式构建第二数据序列的情况下,调用方和被调用方使用相同的方式构建数据序列。例如,第二数据序列中可以依序为使用8字节表示第一随机数,4字节表示约定算法中的扩展数据的长度,扩展数据,4字节表示业务参数的数据长度,4字节表示第一子参数的数据长度,第一子参数的数据,4字节表示第二子参数的数据长度,第二子参数的数据,

4字节表示第n子参数的数据长度,第n子参数的数据。
205.在一些实施例中,基于第二随机排序标识对应的动态排序方式,对用于构建第二数据序列的信息进行排序,得到第二数据序列。
206.具体的第二数据序列的构建形式与第一数据序列结构相同,本公开实施例在这里不再进行一一赘述。
207.本公开实施例中,基于动态排序方式构建出的第二数据序列,以便于对调用方进行鉴权,由于第二数据序列具有随机性,可提高鉴权结果的准确性,从而有利于保护信息安全。
208.步骤g3,基于约定算法处理第二数据序列,得到第二校验码。
209.步骤g4,基于第二校验码和第一校验码的比对结果,以及第二随机数和第一随机数的比对结果,确定鉴权结果。
210.在一些实施例中,在第一随机数和第二随机数一致、且第二校验码和第一校验码一致的情况下,则鉴权结果为鉴权通过;在第一随机数和第二随机数不一致和/或第二校验码和第一校验码不一致的情况下,则鉴权结果为不通过。
211.随机数的比对,以及校验码的比对顺序不受限。实施时,可以先比对随机数,在随机数一致的情况下,再生成第二校验码以便于比对校验码。由此,可以节约生成第二校验码所需的处理资源。
212.本公开实施例中,在第一令牌中包括第一随机数以及约定算法的情况下,在第一随机数的随机性以及约定算法一致性的基础上,使得生成的校验码难以被未授权的调用方破解,因此有利于保证被调用对象的安全性。
213.2)至少两种信息中包括第一随机数和噪音数据
214.在一些实施例中,基于第二令牌进行鉴权,得到鉴权结果,可实施为:
215.步骤h1,从第二令牌获取第二随机数、第一校验码,以及待调用对象的业务参数。
216.其中,被调用方基于第二令牌的预设数据结构来解析第二令牌,以便于从中获取所需的信息。例如,第二随机数的获取方式与前述类似,这里不进行一一赘述。
217.步骤h2,基于第一随机数、噪音数据和业务参数,构建第二数据序列。
218.其中,第二数据序列的构建方式可以使用固定排序方式,也可以使用动态排序方式,需要参见调用方构建第一数据序列的方式进行构建,本公开对此不进行限定。
219.步骤h3,基于预设筛选规则,从多个候选算法中筛选出约定算法。
220.其中,约定算法需要与调用方筛选出约定算法的方式相同,以便于保证双方获取一致的约定算法。
221.步骤h4,基于约定算法处理第二数据序列,得到第二校验码。
222.步骤h5,基于第二校验码和第一校验码的比对结果,以及第二随机数和第一随机数的比对结果,确定鉴权结果。
223.在第一随机数和第二随机数一致、且第二校验码和第一校验码一致的情况下,则鉴权结果为鉴权通过;在第一随机数和第二随机数不一致和/或第二校验码和第一校验码不一致的情况下,则鉴权结果为不通过。
224.随机数的比对,以及校验码的比对顺序不受限。实施时,可以先比对随机数,在随机数一致的情况下,再生成第二校验码以便于比对校验码。由此,可以节约生成第二校验码所需的处理资源。
225.本公开实施例中,在第一令牌中包括第一随机数以及噪音数据的情况下,在第一随机数以及噪音数据的随机性的基础上,在构建第二数据序列时增加了随机排序,可以提高鉴权结果的可靠程度,从而有利于保证信息安全。
226.3)至少两种信息中包括约定算法和噪音数据
227.在一些实施例中,基于第二令牌进行鉴权,得到鉴权结果,可实施为:
228.步骤i1,从第二令牌获取第一校验码,以及待调用对象的业务参数。
229.步骤i2,基于约定算法中的扩展数据、噪音数据,以及业务参数,构建第二数据序列。
230.其中,第二数据序列的构建方式可以使用固定排序方式,也可以使用动态排序方式,本公开对此不进行限定。
231.第二数据序列的构建方式与第一数据序列的构建方式相似,本公开对此不进行一一赘述。
232.步骤i3,基于约定算法处理第二数据序列,得到第二校验码。
233.步骤i4,基于第二校验码和第一校验码的比对结果,确定鉴权结果。
234.在第一随机数和第二随机数一致、且第二校验码和第一校验码一致的情况下,则鉴权结果为鉴权通过;在第一随机数和第二随机数不一致和/或第二校验码和第一校验码不一致的情况下,则鉴权结果为不通过。
235.随机数的比对,以及校验码的比对顺序不受限。实施时,可以先比对随机数,在随机数一致的情况下,再生成第二校验码以便于比对校验码。由此,可以节约生成第二校验码所需的处理资源。
236.本公开实施例中,在第一令牌中包括约定算法以及噪音数据的情况下,在约定算法的一致性以及噪音数据的随机性的基础上,使得校验的具体过程具有随机性,因此能够提高鉴权结果的可靠性,有效甄别出未授权的第三方,从而有利于保证信息安全。
237.在一些实施例中,在鉴权结果为鉴权通过的情况下,基于业务参数调用待调用对象。
238.本公开实施例中,在鉴权通过的情况下,再将基于业务参数调用待调用对象,有利于保证信息安全。
239.需要说明的是,无论采用何种信息构建第二数据序列,第二令牌中可以不包括业务参数,则构建第二数据需要也无需业务参数。在得到鉴权通过的情况下,再将待调用对象的业务参数发送到被调用方。
240.基于相同的技术构思,本公开实施例提出了一种鉴权系统,该鉴权系统中包括调用方和被调用方。调用方按照前述调用方的方法执行鉴权操作,被调用方参照前述被调用方的方法执行鉴权操作。
241.以应用场景为调用共享库中的库文件进行鉴权为例,该场景下调用方为应用程序,被调用方为共享库,由于共享库中存在部分核心库文件,在调用该类库文件的情况下,则需要进行身份鉴权处理,在调用非核心的或无需鉴权处理的库文件的情况下,则可以将该库文件直接进行调用。有鉴于此,本公开实施例中在共享库中提供一个鉴权函数,该函数可将第一令牌返回给调用方即应用程序。
242.鉴于共享库中有些业务函数不需要严格的保护措施,因此共享库中可针对部分关键的业务函数进行鉴权,其余的业务函数可不执行鉴权操作。
243.在实施时,共享库可接收应用程序对业务函数的调用请求,在该业务函数为关键业务函数的情况下,确定需要鉴权。此时由共享库返回第一令牌给应用程序。
244.实施时,可以基于业务函数的命名区分是否需要鉴权,例如业务函数的名称包含特殊字符的情况下,确定需要鉴权,业务函数的名称不包含特殊字符的情况下,确定无需鉴权。由此,应用程序根据待调用对象(即业务函数)的名称即可确定是否需要鉴权。
245.实施时,同一应用程序每次调用关键的业务函数可以均需要执行鉴权。
246.综上,本公开实施例的整体流程图如图7所示:
247.s701,应用程序加载共享库。
248.s702,应用程序在确定业务函数需要鉴权的情况下,基于鉴权函数向共享库发送调用请求。
249.s703,共享库基于调用请求生成第一令牌,并将第一令牌发送到应用程序。
250.该第一令牌中结构如图3a、图3b或图3c所示。
251.s704,应用程序基于第一令牌生成第二令牌;并将第二令牌发送到共享库。
252.生成的第二令牌结构如图5a、图5b所示。
253.s705,共享库基于第二令牌进行鉴权处理,在鉴权结果通过的情况下,基于第二令牌中的业务参数,调用业务函数执行相应操作,并将操作结果发送给应用程序。
254.基于相同的技术构思,本公开实施例还提供一种鉴权装置800,该装置如图8所示,包括:
255.第一接收模块801,用于在需要鉴权的情况下,接收第一令牌;
256.第一解析模块802,用于从第一令牌中解析出第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
257.第二解析模块803,用于基于第一随机排序标识从第一令牌中解析出至少两种信息中的每种信息;
258.生成模块804,用于基于每种信息分别对应的使用规则,生成第二令牌;
259.第一发送模块805,用于发送第二令牌以进行鉴权;
260.第二接收模块806,用于接收鉴权结果。
261.在一些实施例中,至少两种信息包括以下信息中的至少两种:第一随机数,约定算法、噪音数据。
262.在一些实施例中,在至少两种信息中包括第一随机数和约定算法的情况下,生成模块,用于:
263.基于第一随机数、约定算法中的扩展数据、以及待调用对象的业务参数,构建第一数据序列;
264.基于约定算法处理第一数据序列,得到第一校验码;
265.基于第一校验码、第一随机数和业务参数,生成第二令牌。
266.在一些实施例中,在至少两种信息中包括第一随机数以及噪音数据的情况下,生成模块,用于:
267.基于第一随机数、噪音数据和待调用对象的业务参数,构建第一数据序列;以及,
268.基于预设筛选规则,从多个候选算法中筛选出约定算法;
269.基于约定算法处理第一数据序列,得到第一校验码;
270.基于第一校验码、第一随机数和业务参数,生成第二令牌。
271.在一些实施例中,在至少两种信息中包括约定算法和噪音数据的情况下,生成模块,用于:
272.基于约定算法中的扩展数据、噪音数据,以及待调用对象的业务参数,构建第一数据序列;
273.基于约定算法处理第一数据序列,得到第一校验码;
274.基于第一校验码和业务参数,生成第二令牌。
275.在一些实施例中,生成模块,用于:
276.基于固定排序方式对用于构建第一数据序列的信息进行排序,得到第一数据序列;或者,
277.基于动态排序方式对用于构建第一数据序列的信息进行排序,得到第一数据序列。
278.在一些实施例中,在采用动态排序方式的情况下,生成模块,用于:
279.生成动态排序方式对应的第二随机排序标识;
280.按照动态排序方式对第一校验码、第一随机数、第二随机排序标识以及业务参数进行排序,并按照预设数据结构进行封装,得到第二令牌。
281.在一些实施例中,在采用动态排序方式的情况下,生成模块,用于:
282.对第一随机数和动态排序方式的第二随机排序标识执行可逆运算,得到中间结果;
283.按照动态排序方式对中间结果、业务参数以及第一校验码进行排序,并按照预设数据结构进行封装,得到第二令牌。
284.在一些实施例中,第一解析模块,用于:
285.在第一随机排序标识的位置为默认位置的情况下,从第一令牌的默认位置中解析出第一随机排序标识;或者,
286.在第一随机排序标识的位置为动态位置的情况下,从第一令牌中检索目标标记;基于目标标记,从第一令牌中获取第一随机排序标识。
287.在一些实施例中,第二解析模块,用于:
288.从第一令牌中剔除掉第一随机排序标识,获取剩余信息;
289.基于第一随机排序标识对应的第一排序方式,确定每种信息在剩余信息中的位置;
290.基于每种信息在第一令牌中的位置以及每种信息的长度,从第一令牌中解析出每种信息。
291.基于相同的技术构思,本公开实施例还提供一种鉴权装置900,该装置如图9所示,包括:
292.第二发送模块901,用于发送第一令牌;第一令牌中包括至少两种信息以及第一随机排序标识;第一随机排序标识用于指示至少两种信息在第一令牌中的排序顺序;
293.第三接收模块902,用于接收第二令牌;第二令牌是基于第一令牌生成的;
294.鉴权模块903,用于基于第二令牌进行鉴权,得到鉴权结果;
295.第四发送模块904,用于发送鉴权结果。
296.在一些实施例中,至少两种信息包括以下信息中的至少两种:第一随机数,约定算法、噪音数据。
297.在一些实施例中,在至少两种信息中包括第一随机数和约定算法的情况下,鉴权模块,用于:
298.从第二令牌中获取第二随机数、第一校验码,以及待调用对象的业务参数;
299.基于第一随机数、约定算法中的扩展数据、以及业务参数,构建第二数据序列;
300.基于约定算法处理第二数据序列,得到第二校验码;
301.基于第二校验码和第一校验码的比对结果,以及第二随机数和第一随机数的比对结果,确定鉴权结果。
302.在一些实施例中,在至少两种信息中包括第一随机数以及噪音数据的情况下,鉴权模块,还用于:
303.从第二令牌获取第二随机数、第一校验码,以及待调用对象的业务参数;
304.基于第一随机数、噪音数据和业务参数,构建第二数据序列;以及,
305.基于预设筛选规则,从多个候选算法中筛选出约定算法;
306.基于约定算法处理第二数据序列,得到第二校验码;
307.基于第二校验码和第一校验码的比对结果,以及第二随机数和第一随机数的比对结果,确定鉴权结果。
308.在一些实施例中,在至少两种信息中包括约定算法和噪音数据的情况下,鉴权模块,还用于:
309.从第二令牌获取第一校验码,以及待调用对象的业务参数;
310.基于约定算法中的扩展数据、噪音数据,以及业务参数,构建第二数据序列;
311.基于约定算法处理第二数据序列,得到第二校验码;
312.基于第二校验码和第一校验码的比对结果,确定鉴权结果。
313.在一些实施例中,在采用动态排序方式构建第二数据序列的情况下,鉴权模块,还
用于:
314.从第二令牌中获取第二令牌中信息的第三排序方式;
315.基于第三排序方式,确定第二随机数在第二令牌中的位置信息;
316.基于第二随机数在第二令牌中的位置信息以及第二随机数的长度,得到第二随机数。
317.在一些实施例中,在采用动态排序方式构建第二数据序列的情况下,鉴权模块,还用于:
318.从第二令牌中获取中间结果;中间结果是对第二随机数和动态排序方式的第二随机排序标识执行可逆运算得到的;
319.对中间结果执行可逆运算的逆运算,得到第二随机数和第二随机排序标识。
320.在一些实施例中,鉴权模块,还用于:
321.基于第二随机排序标识对应的动态排序方式,对用于构建第二数据序列的信息进行排序,得到第二数据序列。
322.在一些实施例中,在至少两种信息中包括约定算法的情况下,还包括第一令牌生成模块,用于:
323.从多个候选算法中,随机选择一个候选算法作为约定算法;
324.基于第一随机排序标识对包含约定算法的至少两种信息进行排序,生成第一令牌。
325.在一些实施例中,还包括调用模块,用于:
326.在鉴权结果为鉴权通过的情况下,基于业务参数调用待调用对象。
327.本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
328.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
329.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
330.图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
331.如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(rom)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(ram)1003中的计算机程序,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
332.设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以
及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
333.计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如鉴权方法。例如,在一些实施例中,鉴权方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到ram 1003并由计算单元1001执行时,可以执行上文描述的鉴权方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行鉴权方法。
334.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
335.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
336.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
337.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
338.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
339.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
340.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
341.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表