System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及验证码校验,特别涉及一种分布式场景下无缓存实现验证码校验的方法、装置及介质。
技术介绍
1、验证码校验在管理类的系统中普遍应用。在传统的非分布式场景中,验证码通常是以session或者cookie的方式来保存。但是在分布式场景中,验证码生成的后端节点和验证码校验的后端节点不一定相同,此时无法完成验证码的校验工作。
2、现有的分布式系统中,验证码的校验则主要通过分布式缓冲进行,验证码生成时,同时生成一个验证码id,把id和验证码的一起存到分布式缓存中。该方案有以下缺点:1.首先该方案额外依赖中间件,中间件的引入会增加额外的资源和后期的维护成本。2.使用分布式缓冲中间件可能额外增加验证码被绕过风险,以常见的分布式缓冲redis为例,redis容易被攻破,攻击者直接拿到了验证码的id和code验证码功能就无法发挥作用了。
3、在另一种现有技术的解决方案中将id和验证码图片发送给前端,则容易被攻击者捕获。
技术实现思路
1、本专利技术要解决的技术问题,在于提供一种分布式场景下无缓存实现验证码校验的方法、装置及介质,在分布式的场景中,无需引入中间件及额外的缓存,就能够实现验证码的生成及校验的问题,同时提升了安全性。
2、第一方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的方法,应用于分布式服务器,所述方法包括:
3、当分布式服务器收到客户端的获取验证码请求时,生成对应的验证码图片、验证码编码以及验证码失效时间;将验证码
4、当分布式服务器收到客户端发送的用户输入的验证码以及报文头时,解析所述报文头,得到验证码编码及验证码失效时间,根据验证码失效时间校验验证码是否失效,若未失效,则校验用户输入的验证码与验证码编码是否一致,得到验证码校验结果。
5、进一步地,分布式服务器采用对称加密算法对拼接后的信息加密得到加密信息。
6、进一步地,所述对称加密算法为sm4算法。
7、第二方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的方法,应用于客户端,所述方法包括:
8、向分布式服务器发起请求获取验证码;
9、当收到报文时,从报文体获取指定格式的图片编码,转化为图片然后显示;获取用户输入的验证码,然后将用户输入的验证码和报文头发送至分布式服务器进行验证码校验;所述报文头包括加密信息的长度和加密信息;
10、获取校验结果。
11、第三方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的方法,应用于分布式系统,所述方法包括:
12、客户端向分布式服务器发起请求获取验证码;
13、当分布式服务器收到客户端的获取验证码请求时,生成对应的验证码图片、验证码编码以及验证码失效时间;将验证码图片转化为指定格式的图片编码并将验证码编码与验证码失效时间进行拼接并加密得到加密信息,将加密信息的长度和加密信息作为报文头并将指定格式的图片编码作为报文体发送至客户端;
14、当客户端收到报文时,从报文体获取指定格式的图片编码,转化为图片然后显示;获取用户输入的验证码,然后将用户输入的验证码和报文头发送至分布式服务器进行验证码校验;
15、当分布式服务器收到客户端发送的用户输入的验证码以及报文头时,解析所述报文头,得到验证码编码及验证码失效时间,根据验证码失效时间校验验证码是否失效,若未失效,则校验用户输入的验证码与验证码编码是否一致,得到验证码校验结果;
16、客户端获取校验结果。
17、第四方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的装置,应用于分布式服务器,所述装置包括:
18、验证码生成模块,用于当分布式服务器收到客户端的获取验证码请求时,生成对应的验证码图片、验证码编码以及验证码失效时间;将验证码图片转化为指定格式的图片编码并将验证码编码与验证码失效时间进行拼接并加密得到加密信息,将加密信息的长度和加密信息作为报文头并将指定格式的图片编码作为报文体发送至客户端;
19、分布式校验模块,当分布式服务器收到客户端发送的用户输入的验证码以及报文头时,解析所述报文头,得到验证码编码及验证码失效时间,根据验证码失效时间校验验证码是否失效,若未失效,则校验用户输入的验证码与验证码编码是否一致,得到验证码校验结果。
20、进一步地,所述验证码生成模块中,采用对称加密算法对拼接后的信息加密得到加密信息,所述对称加密算法为sm4算法。
21、第五方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的装置,应用于客户端,所述装置包括:
22、请求发起模块,用于向分布式服务器发起请求获取验证码;
23、验证交互模块,用于当收到报文时,从报文体获取指定格式的图片编码,转化为图片然后显示;获取用户输入的验证码,然后将用户输入的验证码和报文头发送至分布式服务器进行验证码校验;所述报文头包括加密信息的长度和加密信息;
24、结果获取模块,用于获取校验结果。
25、第六方面,本专利技术提供了一种分布式场景下无缓存实现验证码校验的装置,应用于分布式系统,所述装置包括:
26、请求发起模块,客户端向分布式服务器发起请求获取验证码;
27、验证码生成模块,当分布式服务器收到客户端的获取验证码请求时,生成对应的验证码图片、验证码编码以及验证码失效时间;将验证码图片转化为指定格式的图片编码并将验证码编码与验证码失效时间进行拼接并加密得到加密信息,将加密信息的长度和加密信息作为报文头并将指定格式的图片编码作为报文体发送至客户端;
28、验证交互模块,当客户端收到报文时,从报文体获取指定格式的图片编码,转化为图片然后显示;获取用户输入的验证码,然后将用户输入的验证码和报文头发送至分布式服务器进行验证码校验;
29、分布式校验模块,当分布式服务器收到客户端发送的用户输入的验证码以及报文头时,解析所述报文头,得到验证码编码及验证码失效时间,根据验证码失效时间校验验证码是否失效,若未失效,则校验用户输入的验证码与验证码编码是否一致,得到验证码校验结果;
30、结果获取模块,客户端获取校验结果。
31、第七方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面或第二方面或第三方面所述的方法。
32、本专利技术在分布式的场景中,基于验证码及分布式场景的特点,在验证码生成阶段,将验证码编码及有效期信息拼接并以报文头的方式与验证码图片编码融合并加密;而在验证码校验阶段,将从前端传递过来的报文头中还原验证码信息,进行验证码及有效期的比对,从而不需要引入中间件及额外的缓存,就能够实现验证码本文档来自技高网...
【技术保护点】
1.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于分布式服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于:分布式服务器采用对称加密算法对拼接后的信息加密得到加密信息。
3.根据权利要求2所述的方法,其特征在于:所述对称加密算法为SM4算法。
4.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于客户端,所述方法包括:
5.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于分布式系统,所述方法包括:
6.一种分布式场景下无缓存实现验证码校验的装置,其特征在于,应用于分布式服务器,所述装置包括:
7.根据权利要求4所述的装置,其特征在于:所述验证码生成模块中,采用对称加密算法对拼接后的信息加密得到加密信息,所述对称加密算法为SM4算法。
8.一种分布式场景下无缓存实现验证码校验的装置,其特征在于,应用于客户端,所述装置包括:
9.一种分布式场景下无缓存实现验证码校验的装置,其特征在于,应用于分布式系统,所述装置包括:
10
...【技术特征摘要】
1.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于分布式服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于:分布式服务器采用对称加密算法对拼接后的信息加密得到加密信息。
3.根据权利要求2所述的方法,其特征在于:所述对称加密算法为sm4算法。
4.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于客户端,所述方法包括:
5.一种分布式场景下无缓存实现验证码校验的方法,其特征在于,应用于分布式系统,所述方法包括:
6.一种分布式场景下无缓存实现验证码校...
【专利技术属性】
技术研发人员:林欣郁,徐童木,邓日锦,程永凎,季萧翊,
申请(专利权)人:福建省电子政务建设运营有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。