一种验证码的验证方法和装置制造方法及图纸

技术编号:19702417 阅读:31 留言:0更新日期:2018-12-08 14:12
本发明专利技术提供一种验证码的验证方法和装置,包括生成验证码,将所述验证码存放在凭证中下发给客户端;接收客户端发送的用户输入的验证码和所述凭证;根据所述凭证,验证用户输入的验证码。因此,本发明专利技术所述验证码的验证方法和装置能够减少服务器端的额外资源开销,同时增强了服务器的稳定性。

【技术实现步骤摘要】
一种验证码的验证方法和装置
本专利技术涉及计算机
,尤其涉及一种验证码的验证方法和装置。
技术介绍
随着信息技术的高速发展,网络安全面临严峻的现实困难,早期互联网上很多安全防护弱的网络平台在注册、登录、发帖机制上只是简单的用户名加密码的方式做验证,但是随之出现的注册机器会对平台进行自动注册、登录、暴力破解、灌水等操作。所以基于网页端的验证码验证技术便被推出,基于网页端的验证码验证的原理即在服务端随机生成验证码,把验证码下发到客户端,同时服务端将该验证码通过服务器端的缓存存储起来。客户端识别验证码并在提交表单时一同提交该验证码,服务器端接收验证码进行对比验证。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:服务器端需要为随机验证码开出额外的存储开销,而这种缓存机制除了需要占用服务器端的资源,同时命中率会因环境、配置等因素降低,导致不够稳定。
技术实现思路
鉴于此,本专利技术实施例提供一种验证码的验证方法和装置,能够减少服务器端的额外资源开销,同时增强了服务器的稳定性。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种验证码的验证方法,包括:生成验证码,将所述验证码存放在凭证中下发给客户端;接收所述客户端发送的用户输入的验证码和所述凭证;根据所述凭证,验证所述用户输入的验证码。可选地,所述凭证为JWT凭证,其中所述JWT凭证包括头部密文、载荷密文和签名;将所述验证码存放在JWT凭证中,包括:将所述验证码存放在JWT凭证的载荷明文中,对所述载荷明文进行编码,以获得JWT凭证的载荷密文。可选地,将所述验证码存放在JWT凭证中,还包括:根据头部密文中存储的预设加密算法,对JWT凭证的头部密文和载荷密文同时加密,将所述加密后的头部密文和载荷密文存放在所述JWT凭证的签名中。可选地,根据所述JWT凭证验证用户输入的验证码,包括:确认所述JWT凭证安全,以提取所述JWT凭证中的验证码;判断用户输入的验证码是否与所述JWT凭证中的验证码相同,是则验证成功,否则验证失败。可选地,确认所述JWT凭证安全,包括:对所述JWT凭证的签名进行解密,以获得签名中的头部密文和载荷密文;分别对签名中的头部密文和载荷密文、JWT凭证的头部密文和载荷密文进行解码,以获得签名中的头部明文和载荷明文、JWT凭证的头部明文和载荷明文;确认所述签名中的头部明文和载荷明文与JWT凭证的头部明文和载荷明文相同,则所述JWT凭证为安全。可选地,接收客户端发送的所述凭证,包括:接收客户端发送的存放在缓存中的所述凭证。根据本专利技术实施例的另一个方面,还提供了一种验证码的验证装置,包括:生成模块,用于生成验证码,将所述验证码存放在凭证中下发给客户端;接收摸块,用于接收所述客户端发送的用户输入的验证码和所述凭证;验证模块,用于根据所述凭证,验证所述用户输入的验证码。可选地,所述凭证为JWT凭证,其中所述JWT凭证包括头部密文、载荷密文和签名;所述生成模块将所述验证码存放在JWT凭证中时,包括:将所述验证码存放在JWT凭证的载荷明文中,对所述载荷明文进行编码,以获得JWT凭证的载荷密文。可选地,所述生成模块将所述验证码存放在JWT凭证中,还包括:根据头部密文中存储的预设加密算法,对JWT凭证的头部密文和载荷密文同时加密,将所述加密后的头部密文和载荷密文存放在所述JWT凭证的签名中。可选地,所述验证模块根据所述JWT凭证验证用户输入的验证码,包括:确认所述JWT凭证安全,以提取所述JWT凭证中的验证码;判断用户输入的验证码是否与所述JWT凭证中的验证码相同,是则验证成功,否则验证失败。可选地,所述验证模块确认所述JWT凭证安全,包括:对所述JWT凭证的签名进行解密,以获得签名中的头部密文和载荷密文;分别对签名中的头部密文和载荷密文、JWT凭证的头部密文和载荷密文进行解码,以获得签名中的头部明文和载荷明文、JWT凭证的头部明文和载荷明文;确认所述签名中的头部明文和载荷明文与JWT凭证的头部明文和载荷明文相同,则所述JWT凭证为安全。可选地,所述接收模块接收客户端发送的所述凭证,包括:接收客户端发送的存放在缓存中的所述凭证。根据本专利技术实施例的另一个方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。根据本专利技术实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用将生成的验证码存放在凭证中,将所述凭证直接下发给客户端,不对生成的验证码进行存储的技术手段,所以克服了服务器端需要对生成的验证码进行存储的技术问题,进而达到了更为稳定的服务器端的技术效果。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例中验证码的验证方法的流程示意图;图2是根据本专利技术实施例中JWT构造示意图;图3是根据本专利技术可参考实施例中验证码的验证方法的流程示意图;图4是根据本专利技术实施例中验证码的验证装置的结构示意图;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的验证码的验证方法,如图1所示,所述的验证码的验证方法包括:步骤S101,生成验证码,将所述验证码存放在凭证中下发给客户端。其中,所述凭证为JWT凭证,所述JWT的英文全称为Jsonwebtoken,JWT凭证是一种用于客户端和服务器端之间传递安全信息的简洁的、安全的表述性声明规范。所述的JWT凭证包括头部密文、载荷密文和签名。在实施例中,可以将所述生成的验证码存放在JWT凭证的载荷明文中。其中,所述JWT凭证的载荷是在计算机通信中,一般指一个数据包或者其他传输单元中运载的基本必要单元数据。优选地,验证码存储在JWT凭证载荷明文的自定义区域。例如:JWT凭证的载荷明文的形式一般可以为:{“iss”:””,”iat”:””,”exp”:””,”aud”:””,”sub”:””,”verify_code”:””},其中前五个参数是标准定义(前五个参数为自动配置),第六个参数是自定义区域(可以把生成的验证码)。进一步地,对存放有验证码的载荷明文进行编码,以获得JWT凭证的载荷密文。也就是说,将载荷明文通过base64编码变为载荷密文,从而可以将存储在载荷明文中的验证码得以保护。其中,编码可以采用base32、base64或者base128等等,且为一种可逆编码。较佳的,在本实施例中采用的是base64编码。另外,JWT凭证的头部明文可以存储传输的信息类型(type)以及对JWT凭证的签字部分进行加密所采用的算法(alg)。例如本文档来自技高网...

【技术保护点】
1.一种验证码的验证方法,其特征在于,包括:生成验证码,将所述验证码存放在凭证中下发给客户端;接收所述客户端发送的用户输入的验证码和所述凭证;根据所述凭证,验证所述用户输入的验证码。

【技术特征摘要】
1.一种验证码的验证方法,其特征在于,包括:生成验证码,将所述验证码存放在凭证中下发给客户端;接收所述客户端发送的用户输入的验证码和所述凭证;根据所述凭证,验证所述用户输入的验证码。2.根据权利要求1所述的方法,其特征在于,所述凭证为JWT凭证,其中所述JWT凭证包括头部密文、载荷密文和签名;将所述验证码存放在JWT凭证中,包括:将所述验证码存放在JWT凭证的载荷明文中,对所述载荷明文进行编码,以获得JWT凭证的载荷密文。3.根据权利要求2所述的方法,其特征在于,将所述验证码存放在JWT凭证中,还包括:根据头部密文中存储的预设加密算法,对JWT凭证的头部密文和载荷密文同时加密,将所述加密后的头部密文和载荷密文存放在所述JWT凭证的签名中。4.根据权利要求2所述的方法,其特征在于,根据所述JWT凭证验证用户输入的验证码,包括:确认所述JWT凭证安全,以提取所述JWT凭证中的验证码;判断用户输入的验证码是否与所述JWT凭证中的验证码相同,是则验证成功,否则验证失败。5.根据权利要求4所述的方法,其特征在于,确认所述JWT凭证安全,包括:对所述JWT凭证的签名进行解密,以获得签名中的头部密文和载荷密文;分别对签名中的头部密文和载荷密文、JWT凭证的头部密文和载荷密文进行解码,以获得签名中的头部明文和载荷明文、JWT凭证的头部明文和载荷明文;确认所述签名中的头部明文和载荷明文与JWT凭证的头部明文和载荷明文相同,则所述JWT凭证为安全。6.根据权利要求1-5任一所述的方法,其特征在于,接收客户端发送的所述凭证,包括:接收客户端发送的存放在缓存中的所述凭证。7.一种验证码的验证装置,其特征在于,包括:生成模块,用于生成验证码,将所述验证码存放在凭证中下发给客户端;接收摸块,用于接收所述客户端发送的用户输入的验证码和所述凭证;验证模块,用于根据所述凭证,验证所述用户输入的...

【专利技术属性】
技术研发人员:胡雄伟
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1