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

资源访问方法及装置、电子设备、计算机可读存储介质与流程

2022-03-26 12:37:34 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,涉及一种资源访问方法、资源访问装置、电子设备以及计算机可读存储介质。


背景技术:

2.现有技术中,客户端在向服务端请求访问资源时携带jwt(json web token)令牌,服务端通过预先存储的密钥校验jwt令牌的合法性;但是一旦密钥被攻击泄露,攻击者就可以对jwt令牌进行修改以生成伪造的jwt令牌,此时服务端并无法辨别出jwt令牌的合法性,并会返回资源数据至客户端。可见,现有技术中资源数据访问的安全性较低。
3.由此,如何提升资源数据访问的安全性是亟待解决的问题。


技术实现要素:

4.为解决上述技术问题,本技术的实施例提供了一种资源访问方法及装置、电子设备、计算机可读存储介质,进而至少在一定程度上提升了资源数据访问的安全性。
5.根据本技术实施例的一个方面,提供了一种资源访问方法,应用于服务端,所述方法包括:接收客户端发送的资源访问请求;其中,所述资源访问请求中携带有jwt令牌,所述jwt令牌包括用户登录相关信息和第一盐值信息;根据预设盐值加密算法对所述用户登录相关信息进行盐值计算,得到第二盐值信息;根据所述第二盐值信息对所述第一盐值信息进行校验;若校验通过,则确定所述jwt令牌合法,并返回与所述资源访问请求对应的资源数据至所述客户端。
6.根据本技术实施例的一个方面,提供了一种资源访问装置,配置于服务端,所述装置包括:接收模块,配置为接收客户端发送的资源访问请求;其中,所述资源访问请求中携带有jwt令牌,所述jwt令牌包括用户登录相关信息和第一盐值信息;生成模块,配置为根据预设盐值加密算法对所述用户登录相关信息进行盐值计算,得到第二盐值信息;校验模块,配置为根据所述第二盐值信息对所述第一盐值信息进行校验;发送模块,配置为若校验通过,则确定所述jwt令牌合法,并返回与所述资源访问请求对应的资源数据至所述客户端。
7.在本技术的一个实施例中,基于前述方案,所述装置还包括:盐值计算模块,配置为根据所述预设盐值加密算法对所述客户端对应的用户登录相关信息进行盐值计算,得到所述第一盐值信息;所述生成模块,还配置为根据所述第一盐值信息生成所述jwt令牌;所述发送模块,还配置为发送所述jwt令牌至所述客户端。
8.在本技术的一个实施例中,基于前述方案,所述jwt令牌包括jwt字段,所述jwt字段中存储有所述用户登录相关信息;所述生成模块包括:第一存储单元,配置为将所述第一盐值信息存储至所述jwt字段中,得到存储有所述第一盐值信息的jwt字段;第二存储单元,配置为根据密钥对从所述jwt字段中获取到的用户登录相关信息进行加密,生成签名信息,并将所述签名信息存储至所述jwt字段中,得到存储有所述签名信息的jwt字段;生成单元,配置为对存储有所述第一盐值信息的jwt字段和存储有所述签名信息的jwt字段进行整合,
生成所述jwt令牌。
9.在本技术的一个实施例中,基于前述方案,所述jwt字段包括头部字段、主体字段以及签名字段;所述第一存储单元,具体配置为对所述第一盐值信息进行分段,得到多个子盐值信息,并将各个子盐值信息分别存储至所述头部字段和/或所述主体字段中。
10.在本技术的一个实施例中,基于前述方案,所述jwt字段包括头部字段、主体字段以及签名字段;所述第二存储单元,具体配置为根据所述密钥对从所述主体字段中获取到的用户登录相关信息进行加密,生成所述签名信息,并将所述签名信息存储至所述签名字段中。
11.在本技术的一个实施例中,基于前述方案,所述装置还包括:所述接收模块,还配置为接收所述客户端发送的登录请求;其中,所述登录请求中携带有用户账号信息和密码信息;校验模块,配置为根据所述用户账号信息和所述密码信息对用户进行身份校验;获取模块,配置为若校验通过,则允许所述客户端登录,并获取所述客户端对应的用户登录相关信息。
12.在本技术的一个实施例中,基于前述方案,所述jwt令牌包括jwt字段,所述第一盐值信息分段为多个子盐值信息,并存储在所述jwt字段中;所述校验模块包括:组合单元,配置为从所述jwt字段中获取多个子盐值信息,并对各个子盐值信息进行组合,得到所述第一盐值信息;检验单元,配置为根据所述第二盐值信息对所述第一盐值信息进行校验。
13.在本技术的一个实施例中,基于前述方案,所述装置还包括:解码模块,配置为对所述jwt令牌进行解码,得到jwt字段;解密模块,配置为根据密钥对jwt字段中含有的签名信息进行解密,得到解密后的用户登录相关信息;匹配模块,配置为将解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配;执行模块,配置为若匹配成功,则执行根据所述第二盐值信息对所述第一盐值信息进行校验的步骤;确定模块,配置为若匹配失败,则确定所述jwt令牌不合法。
14.根据本技术实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的资源访问方法。
15.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如前所述的资源访问方法。
16.根据本技术实施例的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如前所述的资源访问方法。
17.在本技术的实施例所提供的技术方案中,客户端在向服务端请求访问资源时,资源访问请求中携带了jwt令牌,同时该jwt令牌中包括用户登录相关信息和第一盐值信息;因此,服务端就可以根据jwt令牌中含有的用户登录相关信息生成第二盐值信息,并利用生成的第二盐值信息对jwt令牌中含有的第一盐值信息进行校验,如果校验通过,则表征jwt令牌是合法的,此时可以返回与资源访问请求对应的资源数据至客户端。这样,能够简单快速地确定出jwt令牌的合法性,避免了由于密钥泄露导致资源数据访问安全性低的问题,在极大程度上提升了资源数据访问的安全性。
18.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本技术。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
20.图1是可以应用本技术实施例的技术方案的示例性实施环境的示意图;
21.图2是本技术的一示例性实施例示出的资源访问方法的流程图;
22.图3是本技术的一示例性实施例示出的资源访问方法的流程图;
23.图4是本技术的一示例性实施例示出的资源访问方法的流程图;
24.图5是图3所示实施例中的步骤s320在一示例性实施例中的流程图;
25.图6是本技术的一示例性实施例示出的jwt字段的示意图;
26.图7是图5所示实施例中的步骤s510在一示例性实施例中的流程图;
27.图8是图5所示实施例中的步骤s520在一示例性实施例中的流程图;
28.图9是图2所示实施例中的步骤s230在一示例性实施例中的流程图;
29.图10是本技术的一示例性实施例示出的资源访问方法的流程图;
30.图11是本技术的一示例性实施例示出的资源访问方法的流程图;
31.图12是本技术的一示例性实施例示出的资源访问方法的流程图;
32.图13是本技术的一示例性实施例示出的资源访问方法的流程图;
33.图14是本技术的一示例性实施例示出的资源访问装置的结构示意图;
34.图15是适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
35.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
36.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
37.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
38.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
39.现有技术中,客户端在向服务端请求访问资源时携带jwt令牌,服务端通过预先存储的密钥校验jwt令牌的合法性;但是一旦密钥被攻击泄露,攻击者就可以对jwt令牌进行
修改以生成伪造的jwt令牌,此时服务端并无法辨别出jwt令牌的合法性,并会返回资源数据至客户端。可见,现有技术中资源数据访问的安全性较低。
40.对此,相关技术中有采用增加标识字段、缩短jwt令牌过期时间、以及结合服务端存储token双重校验等方法来防御jwt令牌的破解攻击。其中,对于增加标识字段会使得jwt令牌对应的jwt字段增多,复杂性较高;对于缩短jwt令牌过期时间会增加刷新令牌接口的调用,从而客户端在短时间内就需要重新登录,用户的体验满意度低;对于双重校验则需要在服务端存储token与jwt的映射关系,占用了服务端的存储空间,而且针对每个客户端都会存储一个token与jwt的映射关系,使得服务端的压力较大。可见,相关技术中资源数据访问并没有很好的方案。
41.基于此,本技术的实施例提供了一种资源访问方法及装置、电子设备、计算机可读存储介质,可以提升资源数据访问的安全性,优化资源数据访问方案。
42.请参阅图1,图1是本技术一种示例性实施环境的示意图。该实施环境中包括终端设备110和服务器120,终端设备110和服务器120之间通过有线或者无线网络进行通信。
43.应该理解,图1中的终端设备110和服务器120的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备110和服务器120。
44.其中,终端设备110对应客户端,其可以是任意具有用户输入接口的电子设备,包括但不限于智能手机、平板、笔记本电脑、计算机等等,其中,用户输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。
45.其中,服务器120对应服务端,其可以是提供各种服务的服务器,其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
46.在本技术的一些实施例中,资源访问方法可以由服务器120执行,相应地,资源访问装置配置于服务器120中。其中,服务器120可以获取到终端设备110发送的资源访问请求,其中资源访问请求中携带有jwt令牌,jwt令牌包括用户登录相关信息和第一盐值信息;之后,根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息;之后,根据第二盐值信息对第一盐值信息进行校验,如果校验通过,则确定jwt令牌合法,并返回与资源访问请求对应的资源数据至终端设备110。
47.以下对本技术实施例的技术方案的各种实现细节进行详细阐述:
48.请参阅图2,图2是本技术的一个实施例示出的资源访问方法的流程图。该方法可以应用于图1所示的实施环境中,并由图1所示实施环境中的服务器120执行。如图2所示,资源访问方法至少包括步骤s210至步骤s230,详细介绍如下:
49.步骤s210,接收客户端发送的资源访问请求;其中,资源访问请求中携带有jwt令牌,jwt令牌包括用户登录相关信息和第一盐值信息。
50.本技术实施例中资源访问请求指的是客户端在需要访问服务端中的资源数据时而发起的用于获取资源数据的一个请求,这样服务端可以根据资源访问请求确定客户端存在访问资源的需求,此时需要对资源访问请求中所携带的jwt令牌进行合法性校验,并根据校验结果确定是否向客户端返回资源数据。
51.本技术实施例中资源访问请求中所携带的jwt令牌即为待校验合法性的jwt令牌,jwt令牌中包括用户登录相关信息和第一盐值信息,其中:
52.用户登录相关信息指的是用户登录的一系列相关信息,其中用户登录相关信息包括但不限于用户名称、用户密码、用户登录时间、根据用户登录时间而创建jwt令牌的时间、设置的jwt令牌过期时间等。
53.第一盐值信息指的是服务端根据预设盐值加密算法对用户登录相关信息进行盐值计算所得到的盐值,后文中提及到第二盐值信息,第二盐值信息同样指的是服务端根据预设盐值加密算法对用户登录相关信息进行盐值计算所得到的盐值。两者的区别在于,第一盐值信息是服务端在用户登录时获取到用户登录相关信息进行盐值计算所得到的,以及根据第一盐值信息生成jwt令牌并发送至客户端,以作为客户端进行请求访问资源的身份凭证;而第二盐值信息是服务端接收到客户端发送的资源访问请求时,根据资源访问请求所携带的jwt令牌中所含有的用户登录相关信息进行盐值计算所得到的,以用于对jwt令牌的合法性进行校验。
54.在本技术的一个实施例中,请参阅图3,在步骤s210中接收客户端发送的资源访问请求的过程之前,还可以包括步骤s310至步骤s330,详细介绍如下:
55.步骤s310,根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息;
56.步骤s320,根据第一盐值信息生成jwt令牌;
57.步骤s330,发送jwt令牌至客户端。
58.也即,可选实施例中服务端是根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息,之后,根据第一盐值信息生成jwt令牌,之后,将生成的jwt令牌发送至客户端,这样客户端在后续进行请求访问资源时携带该jwt令牌以作为身份凭证。
59.其中,可选实施例中预设盐值加密算法包括但不限于加盐md(message digest algorithm)系列算法、加盐sha(secure hash algorithm)系列算法以及加盐pbkdf(password-based key derivation function)系列算法;其中,加盐md系列算法安全性较低,加盐sha系列算法的安全性适中,加盐pbkdf系列算法安全性较高。在实际应用中,可以根据具体应用场景选择预设盐值加密算法;例如在安全性要求较低的场景下,可以采用加盐md系列算法,相应地,在安全性要求适中的场景下,可以采用加盐sha系列算法,相应地,在安全性要求较高的场景下,可以采用加盐pbkdf系列算法。
60.可以理解的是,由于不同客户端对应的用户登录相关信息不同,因此,根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算所得到的第一盐值信息是不同的。例如请参阅下表1,为一种示例性的服务端针对不同客户端生成不同的第一盐值信息。
61.客户端对应的用户登录相关信息第一盐值信息客户端1的用户登录相关信息a1k1客户端2的用户登录相关信息a2k2客户端3的用户登录相关信息a3k3
…………
62.表1
63.可以理解的是,由于同一客户端对应的用户在不同时刻进行登录,因此,所生成的用户登录相关信息可能会存在不同;例如用户登录相关信息包括用户登录时间、根据用户登录时间而创建jwt令牌的时间时,所生成的用户登录相关信息不同,此时根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算所得到的第一盐值信息也是不同的。例如请参阅下表2,为一种示例性的服务端针对同一客户端生成不同的第一盐值信息。
64.客户端1对应的用户登录相关信息第一盐值信息用户登录相关信息a11k11用户登录相关信息a12k12用户登录相关信息a13k13
…………
65.表2
66.在本技术的一个实施例中,请参阅图4,在步骤s310中根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息的过程之前,还可以包括步骤s410至步骤s430,详细介绍如下:
67.步骤s410,接收客户端发送的登录请求;其中,登录请求中携带有用户账号信息和密码信息;
68.步骤s420,根据用户账号信息和密码信息对用户进行身份校验;
69.步骤s430,若校验通过,则允许客户端登录,并获取客户端对应的用户登录相关信息。
70.也即,可选实施例中在客户端接收到用户执行的登录操作时,生成登录请求并发送至服务端,相应地,服务端接收客户端发送的登录请求,并根据登录请求中所携带的用户账号信息和密码信息对用户进行身份校验。其中,如果校验通过,则允许客户端登录,并获取客户端对应的用户登录相关信息,以便于后续根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息;如果校验未通过,可以发送校验未通过的消息至客户端,以使用户根据校验未通过信息重新执行登录操作。
71.在本技术的一个实施例中,jwt令牌包括jwt字段,jwt字段中存储有用户登录相关信息;请参阅图5,步骤s320中根据第一盐值信息生成jwt令牌的过程,可以包括步骤s510至步骤s530,详细介绍如下:
72.步骤s510,将第一盐值信息存储至jwt字段中,得到存储有第一盐值信息的jwt字段;
73.步骤s520,根据密钥对从jwt字段中获取到的用户登录相关信息进行加密,生成签名信息,并将签名信息存储至jwt字段中,得到存储有签名信息的jwt字段;
74.步骤s530,对存储有第一盐值信息的jwt字段和存储有签名信息的jwt字段进行整合,生成jwt令牌。
75.也即,可选实施例中服务端是将第一盐值信息存储至jwt字段中,得到存储有第一盐值信息的jwt字段,之后,根据密钥对从jwt字段中获取到的用户登录相关信息进行加密,生成签名信息,并将签名信息存储至jwt字段中,得到存储有签名信息的jwt字段,之后,对存储有第一盐值信息的jwt字段和存储有签名信息的jwt字段进行整合从而生成jwt令牌。
76.在本技术的一个实施例中,请参阅图6,为一种示例性的jwt字段;如图6所示,jwt字段包括头部(header)字段、主体(body)字段以及签名(signature)字段。其中,头部字段通常存储的是令牌类型以及所使用的加密算法等信息;主体字段也称负载(payload)字段,通常存储的是jwt令牌的有效信息如用户登录相关信息;签名字段通常存储的是jwt令牌的加密签名,具体地,是通过密钥对主体字段所存储的jwt令牌的有效信息进行加密生成签名信息并进行存储,以用于防止jwt令牌中包括的信息被篡改。
77.在本技术的一个实施例中,请参阅图7,步骤s510中将第一盐值信息存储至jwt字段中的过程,可以包括步骤s710至步骤s720,详细介绍如下:
78.步骤s710,对第一盐值信息进行分段,得到多个子盐值信息;
79.步骤s720,将各个子盐值信息分别存储至头部字段和/或主体字段中。
80.也即,可选实施例中服务端是对第一盐值信息进行分段,得到多个子盐值信息,之后,将各个子盐值信息分别存储至头部字段和/或主体字段中。
81.其中,可选实施例中可以将全部子盐值信息均存储至头部字段中;例如对第一盐值信息进行分段,得到10个子盐值信息,将10个子盐值信息按照预设盐值添加算法均存储至头部字段中。
82.其中,可选实施例中可以将全部子盐值信息均存储至主体字段中;例如对第一盐值信息进行分段,得到10个子盐值信息,将10个子盐值信息按照预设盐值添加算法均存储至主体字段中。
83.其中,可选实施例中可以将部分子盐值信息存储至头部字段,部分子盐值信息存储至主体字段中;例如对第一盐值信息进行分段,得到10个子盐值信息,将其中5个子盐值信息按照预设盐值添加算法存储至头部字段中,将另外5个子盐值信息按照预设盐值添加算法存储至主体字段中。
84.可以理解的是,可选实施例中预设盐值添加算法可以根据具体应用场景进行灵活调整,本发明对此不作具体限定。
85.这样,将盐值信息进行分段并采用预设盐值添加算法存储至jwt字段中,可以在极大程度上提升jwt令牌的安全性,因为如果攻击者要伪造jwt令牌,则必然需要伪造第一盐值信息,并且需要将伪造的第一盐值信息正确地进行分段以及正确地存储到jwt字段中,大大增加了jwt令牌的伪造难度,能够有效地防御jwt令牌的破解攻击。
86.在本技术的一个实施例中,请参阅图8,步骤s520中根据密钥对从jwt字段中获取到的用户登录相关信息进行加密,生成签名信息,并将签名信息存储至jwt字段中的过程,可以包括步骤s810至步骤s820,详细介绍如下:
87.步骤s810,根据密钥对从主体字段中获取到的用户登录相关信息进行加密,生成签名信息;
88.步骤s820,将签名信息存储至签名字段中。
89.也即,可选实施例中服务端是根据密钥对主体字段中获取到的用户登录相关信息进行加密从而生成签名信息,之后,将签名信息存储至签名字段中。
90.其中,可选实施例中的密钥存储在服务端,密钥用于对从主体字段中获取到的用户登录相关信息进行加密从而生成签名信息。
91.步骤s220,根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二
盐值信息。
92.本技术实施例中服务端接收客户端发送的资源访问请求之后,需要根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息。
93.可以理解的是,对用户登录相关信息进行盐值计算得到的第二盐值信息所采用的预设盐值加密算法,与对用户登录相关信息进行盐值计算得到的第一盐值信息所采用的预设盐值加密算法相同;这样只要用户登录相关信息没有发生变化,那么jwt令牌中所含有的第一盐值信息与新生成的第二盐值信息必然是相同的,因此,可以通过第二盐值信息对第一盐值信息进行校验。
94.步骤s230,根据第二盐值信息对第一盐值信息进行校验。
95.本技术实施例中根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息之后,需要根据第二盐值信息对第一盐值信息进行校验。
96.可以理解的是,jwt令牌包括jwt字段,第一盐值信息分段为多个子盐值信息,并存储在jwt字段中。可选地,jwt字段包括头部字段、主体字段以及签名字段,服务端根据预设盐值添加算法将各个子盐值信息分别存储至头部字段和/或主体字段中,具体请参见前述介绍。
97.在本技术的一个实施例中,请参阅图9,步骤s230中根据第二盐值信息对第一盐值信息进行校验的过程,可以包括步骤s910至步骤s920,详细介绍如下:
98.步骤s910,从jwt字段中获取多个子盐值信息,并对各个子盐值信息进行组合,得到第一盐值信息;
99.步骤s920,根据第二盐值信息对第一盐值信息进行校验。
100.也即,可选实施例中服务端是从jwt字段中获取多个子盐值信息,并对各个子盐值信息进行组合从而得到第一盐值信息,之后,根据第二盐值信息对第一盐值信息进行校验。
101.可以理解的是,根据第二盐值信息对第一盐值信息进行校验,具体可以是判断第二盐值信息与第一盐值信息是否相同。其中,如果第二盐值信息与第一盐值信息相同,则表征用户登录相关信息没有发生变化(即用户登录相关信息没有被篡改),此时校验通过,如果第二盐值信息与第一盐值信息不同,则表征用户登录相关信息发生变化(即用户登录相关信息被篡改),此时校验未通过。
102.在本技术的一个实施例中,请参阅图10,在步骤s230中根据第二盐值信息对第一盐值信息进行校验的过程之前,还可以包括步骤s1010至步骤s1050,详细介绍如下:
103.步骤s1010,对jwt令牌进行解码,得到jwt字段;
104.步骤s1020,根据密钥对jwt字段中含有的签名信息进行解密,得到解密后的用户登录相关信息;
105.步骤s1030,将解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配;
106.步骤s1040,若匹配成功,则执行根据第二盐值信息对第一盐值信息进行校验的步骤;
107.步骤s1050,若匹配失败,则确定jwt令牌不合法。
108.也即,可选实施例中服务端可以先对jwt令牌进行解码,得到jwt字段,之后,根据密钥对jwt字段中含有的签名信息进行解密,得到解密后的用户登录相关信息,之后,将解
密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配。
109.其中,可选实施例中jwt字段中存储的信息部分是简单编码的,部分是经过加密后形成的;例如jwt字段包括头部字段、主体字段以及签名字段,其中存储在头部字段、主体字段中的信息是简单编码后的信息,而存储在签名字段中的信息是通过密钥加密后生成的信息,即部分信息是公开的,可以获取得到,部分信息是未公开的,无法获取得到的。因此,服务端对jwt令牌进行解码,可以得到明文(即解码后即可得到的信息)与密文(即解码后还需要进一步解密才能得到的信息),其中明文中包括了用户登录相关信息,密文中同样包括了用户登录相关信息。
110.可以理解的是,将解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配,具体可以是判断解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息是否相同。其中,如果相同,则表征第一步校验通过,但是此时并不能确定密钥是否泄露,因此,需要执行根据第二盐值信息对第一盐值信息进行校验的步骤,以进行第二步校验从而确定jwt令牌是否合法;如果不相同,则表征第一步校验未通过,即密钥未被泄露,此时可以直接确定jwt令牌不合法。
111.这样,在解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息不匹配时,才根据第二盐值信息对第一盐值信息进行校验以确定jwt令牌是否合法,可以在一定程度上节省系统资源,提升确定jwt令牌合法性的效率。
112.在本技术的一个实施例中,还可以根据第二盐值信息生成校验jwt令牌,具体的生成过程和根据第一盐值信息生成jwt令牌的过程类似,这里不再赘述。
113.步骤s240,若校验通过,则确定jwt令牌合法,并返回与资源访问请求对应的资源数据至客户端。
114.本技术实施例中根据第二盐值信息对第一盐值信息进行校验,如果校验通过,则此时可以确定jwt令牌是合法的,因此,可以返回与资源访问请求对应的资源数据至客户端。
115.本技术实施例中客户端在向服务端请求访问资源时,资源访问请求中携带了jwt令牌,同时该jwt令牌中包括用户登录相关信息和第一盐值信息;因此,服务端就可以根据jwt令牌中含有的用户登录相关信息生成第二盐值信息,并利用生成的第二盐值信息对jwt令牌中含有的第一盐值信息进行校验,如果校验通过,则表征jwt令牌是合法的,此时可以返回与资源访问请求对应的资源数据至客户端。这样,能够简单快速地确定出jwt令牌的合法性,并且确定jwt令牌的合法性的过程中,无需增加标识字段,也不会降低用户体验,服务器的压力也较小,简单易于实现,在极大程度上提升了资源数据访问的安全性,优化了资源数据访问方案。
116.以下对本技术实施例的具体应用场景进行详细说明:
117.请参阅图11,图11是本技术的一个实施例示出的资源访问方法的流程图。如图11所示,资源访问方法至少包括步骤s1110至步骤s1140,详细介绍如下:
118.步骤s1110,客户端向服务端发送登录请求;其中,登录请求中携带有用户账号信息和密码信息。
119.步骤s1120,服务端根据用户账号信息和密码信息对用户进行身份校验,并在校验通过后,根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第一盐值信息,以
及根据第一盐值信息生成jwt令牌,并发送jwt令牌至客户端。
120.步骤s1130,客户端向服务端发送资源访问请求;其中,资源访问请求中携带有jwt令牌,jwt令牌包括用户登录相关信息和第一盐值信息。
121.步骤s1140,服务端根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息,并根据第二盐值信息对第一盐值信息进行校验,若校验通过,则确定jwt令牌合法,并发送与资源访问请求对应的资源数据至客户端。
122.可以理解的是,图11是结合双端进行的示例性说明;可选地,步骤s1110至步骤s1140的具体实施过程可以参照前述实施例的技术方案。
123.请参阅图12,图12是本技术的一个实施例示出的资源访问方法的流程图。如图12所示,资源访问方法至少包括步骤s1210至步骤s1270,详细介绍如下:
124.步骤s1210,客户端显示的登录界面中接收到用户输入的用户账号和用户密码。
125.步骤s1220,服务端判断用户账号和用户密码是否正确;若用户账号错误,则执行步骤s1230,若用户密码错误,则执行步骤s1240,若均正确,则执行步骤s1250。
126.其中,客户端将接收到的用户输入的用户账号和用户密码发送至服务端,由服务端对用户账号和用户密码是否准确进行判断。
127.步骤s1230,客户端提示用户账号错误。
128.其中,如果服务端确定用户账号错误,则返回用户账号错误信息至客户端,以使客户端显示用户账号错误信息,此时用户可以重新输入用户账号。
129.步骤s1240,客户端提示用户密码错误。
130.其中,如果服务端确定用户密码错误,则返回用户密码错误信息至客户端,以使客户端显示用户密码错误信息,此时用户可以重新输入用户密码。
131.步骤s1250,服务端根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息。
132.其中,用户登录相关信息包括用户名称、用户密码、用户登录时间、根据用户登录时间而创建jwt令牌的时间、设置的jwt令牌过期时间。
133.步骤s1260,将第一盐值信息进行分段,得到多个子盐值信息,并将各个子盐值信息分别存储至jwt字段中,以生成jwt令牌。
134.步骤s1270,服务端发送jwt令牌至客户端。
135.至此,完成jwt令牌的生成过程;可选地,步骤s1210至步骤s1270的具体实施过程可以参照前述实施例的技术方案。
136.请参阅图13,图13是本技术的一个实施例示出的资源访问方法的流程图。如图13所示,资源访问方法至少包括步骤s1310至步骤s1390,详细介绍如下:
137.步骤s1310,客户端接收到用户输入的资源请求操作,生成资源访问请求;其中,资源访问请求中携带有jwt令牌,jwt令牌包括用户登录相关信息和第一盐值信息,并发送资源访问请求至服务端。
138.其中,资源访问请求中携带的jwt令牌可以前述图12中所生成的jwt令牌。
139.步骤s1320,服务端对jwt令牌进行解码,得到jwt字段。
140.步骤s1330,服务端根据密钥对jwt字段中含有的签名信息进行解密,得到解密后的用户登录相关信息。
141.步骤s1340,服务端将解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配;若匹配成功,则执行步骤s1350,若匹配失败,则执行步骤s1390。
142.步骤s1350,服务端根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息。
143.步骤s1360,服务端根据第二盐值信息对第一盐值信息进行校验。
144.步骤s1370,若校验通过,则服务端确定jwt令牌合法。
145.步骤s1380,服务端发送与资源访问请求对应的资源数据至客户端。
146.步骤s1390,服务端确定jwt令牌不合法。
147.至此,完成jwt令牌的校验过程;可选地,步骤s1310至步骤s1390的具体实施过程可以参照前述实施例的技术方案。
148.本技术实施例中能够简单快速地确定出jwt令牌的合法性,并且确定jwt令牌的合法性的过程中,无需增加标识字段,也不会降低用户体验,服务器的压力也较小,简单易于实现,在极大程度上提升了资源数据访问的安全性。
149.图14是本技术的一个实施例示出的资源访问装置的框图。如图14所示,该装置配置于服务端,该装置包括:
150.接收模块1410,配置为接收客户端发送的资源访问请求;其中,资源访问请求中携带有jwt令牌,jwt令牌包括用户登录相关信息和第一盐值信息;
151.生成模块1420,配置为根据预设盐值加密算法对用户登录相关信息进行盐值计算,得到第二盐值信息;
152.校验模块1430,配置为根据第二盐值信息对第一盐值信息进行校验;
153.发送模块1440,配置为若校验通过,则确定jwt令牌合法,并返回与资源访问请求对应的资源数据至客户端。
154.在本技术的一个实施例中,装置还包括:
155.盐值计算模块,配置为根据预设盐值加密算法对客户端对应的用户登录相关信息进行盐值计算,得到第一盐值信息;
156.生成模块1420,还配置为根据第一盐值信息生成jwt令牌;
157.发送模块1440,还配置为发送jwt令牌至客户端。
158.在本技术的一个实施例中,jwt令牌包括jwt字段,jwt字段中存储有用户登录相关信息;生成模块1420包括:
159.第一存储单元,配置为将第一盐值信息存储至jwt字段中,得到存储有第一盐值信息的jwt字段;
160.第二存储单元,配置为根据密钥对从jwt字段中获取到的用户登录相关信息进行加密,生成签名信息,并将签名信息存储至jwt字段中,得到存储有签名信息的jwt字段;
161.生成单元,配置为对存储有第一盐值信息的jwt字段和存储有签名信息的jwt字段进行整合,生成jwt令牌。
162.在本技术的一个实施例中,jwt字段包括头部字段、主体字段以及签名字段;第一存储单元,具体配置为对第一盐值信息进行分段,得到多个子盐值信息,并将各个子盐值信息分别存储至头部字段和/或主体字段中。
163.在本技术的一个实施例中,jwt字段包括头部字段、主体字段以及签名字段;第二
存储单元,具体配置为根据密钥对从主体字段中获取到的用户登录相关信息进行加密,生成签名信息,并将签名信息存储至签名字段中。
164.在本技术的一个实施例中,装置还包括:
165.接收模块1410,还配置为接收客户端发送的登录请求;其中,登录请求中携带有用户账号信息和密码信息;
166.校验模块,配置为根据用户账号信息和密码信息对用户进行身份校验;
167.获取模块,配置为若校验通过,则允许客户端登录,并获取客户端对应的用户登录相关信息。
168.在本技术的一个实施例中,jwt令牌包括jwt字段,第一盐值信息分段为多个子盐值信息,并存储在jwt字段中;校验模块1430包括:
169.组合单元,配置为从jwt字段中获取多个子盐值信息,并对各个子盐值信息进行组合,得到第一盐值信息;
170.检验单元,配置为根据第二盐值信息对第一盐值信息进行校验。
171.在本技术的一个实施例中,装置还包括:
172.解码模块,配置为对jwt令牌进行解码,得到jwt字段;
173.解密模块,配置为根据密钥对jwt字段中含有的签名信息进行解密,得到解密后的用户登录相关信息;
174.匹配模块,配置为将解密后的用户登录相关信息和解码后的jwt字段中含有的用户登录相关信息进行匹配;
175.执行模块,配置为若匹配成功,则执行根据第二盐值信息对第一盐值信息进行校验的步骤;
176.确定模块,配置为若匹配失败,则确定jwt令牌不合法。
177.需要说明的是,上述实施例所提供的资源访问装置与前述实施例所提供的资源访问方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,这里不再赘述。
178.本技术的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现前述各个实施例中提供的资源访问方法。
179.图15示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
180.需要说明的是,图15示出的电子设备的计算机系统1500仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
181.如图15所示,计算机系统1500包括中央处理单元(central processing unit,cpu)1501,其可以根据存储在只读存储器(read-only memory,rom)1502中的程序或者从储存部分1508加载到随机访问存储器(random access memory,ram)1503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 1503中,还存储有系统操作所需的各种程序和数据。cpu 1501、rom 1502以及ram 1503通过总线1504彼此相连。输入/输出(input/output,i/o)接口1505也连接至总线1504。
182.以下部件连接至i/o接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声
器等的输出部分1507;包括硬盘等的储存部分1508;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至i/o接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入储存部分1508。
183.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(cpu)1501执行时,执行本技术的系统中限定的各种功能。
184.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
185.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
186.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
187.本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,
该计算机程序被处理器执行时实现如前的资源访问方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
188.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的资源访问方法。
189.上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献