【技术实现步骤摘要】
一种验证码的生成及验证方法、客户端、服务端及系统
[0001]本专利技术涉及数据处理领域,尤其涉及一种验证码的生成及验证方法、客户端、服务端及系统。
技术介绍
[0002]目前验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。通常情况下,验证码使用一些线条和一些不规则的字符组成,用户必须读取这些字符,然后输入这些字符才能成功验证。因为人可以很容易读出图片中的字符,但如果是一段客户端攻击程序(即机器人程序),则通过一般手段是很难识别所述验证码的。因此,验证码的作用是可以防止恶意破解密码、刷票、论坛灌水或进行非正常的不断登陆尝试等。
[0003]传统的图片识别内容的验证码,存在的局限性有:需要读题,例如12306应用程序采用识别图片中的物品例如橙子,而下一次识别的是椅子的方式,较为麻烦,同时图片噪声多时,识别图片信息耗时,而且可能出现部分图像重叠,导致识别不了,需要刷新的情况。
技术实现思路
[0004]本专利技术的目的是提供一种验证码的生成及验证方法、客户端、服务端及系统,旨在解决现有的图片识别内容的验证码,识别过程较为耗时,不利于与用户进行交互的问题。
[0005]为解决上述技术问题,本专利技术的目的是通过以下技术方案实现的:提供一种验证码的生成及验证方法,应用于客户端, ...
【技术保护点】
【技术特征摘要】
1.一种验证码的生成及验证方法,应用于客户端,其特征在于,包括:接收并解密由服务端发送的验证码图元加密数据,得到至少4个顶点数组,其中,所述至少4个顶点数组满足以下相交规则:各顶点数组依次相连构成首尾相连的连接线,且首条连接线与末条连接线相交;将各所述顶点数组按照相交规则依次相连,得到由各连接线构建的验证码,并显示在操作区;接收并执行用户的操作指令,将得到的执行数据进行加密打包,并将所述执行数据、验证码图元加密数据发送至服务端,使所述服务端在接收到所述执行数据、验证码图元加密数据后,基于所述验证码图元加密数据,判断所述执行数据是否满足预设的验证规则,若所述执行数据满足预设的验证规则,则判定验证成功,并将判断结果返回,若所述执行数据不满足预设的验证规则,则判定验证失败,并将判断结果返回,其中,所述验证规则包括:首条连接线与末条连接线不相交;基于所述服务端返回的判断结果,在所述操作区进行相应的显示。2.根据权利要求1所述的验证码的生成及验证方法,其特征在于,所述接收并解密由服务端发送的验证码图元加密数据,得到至少4个顶点数组,包括:接收由服务端发送的所述验证码图元加密数据以及公钥,利用base64对所述验证码图元加密数据进行解码,得到对应的二进制数据块;利用公钥对所述二进制数据块进行解密,得到至少4个顶点数组以及相应的初始时间戳。3.根据权利要求2所述的验证码的生成及验证方法,其特征在于,所述接收并执行用户的操作指令,将得到的执行数据进行加密打包,并将所述执行数据、验证码图元加密数据发送至服务端,包括:收集用户的操作行为数据,其中,所述操作行为数据包括顶点移动数据和操作持续时间;获取最终的顶点数组信息;利用所述公钥对所述操作行为数据、最终的顶点数组信息、初始时间戳进行加密打包,得到打包数据;利用base64对所述打包数据进行编码,使所述打包数据字符串化,得到执行数据;将所述执行数据、验证码图元加密数据发送至服务端。4.一种验证码的生成及验证方法,应用于服务端,其特征在于,包括:在与操作区尺寸相同的范围内随机生成至少4个顶点,得到至少4个顶点数组;判断所述至少4个顶点数组是否满足以下相交规则:各顶点数组依次相连构成首尾相连的连接线,且首条连接线与末条连接线相交;若满足所述相交规则则对所述至少4个顶点数组进行加密,得到验证码图元加密数据并发送至客户端,使所述客户端接收并解密所述验证码图元加密数据,得到至少4个顶点数组以及将各所述顶点数组按照相交规则依次相连,得到由各连接线构建的验证码,并显示在操作区;并使所述客户端接收并执行用户的操作指令,将得到的执行数据进行加密打包,并将所述执行数据、验证码图元加密数据发送至服务端;在接收到所述客户端发送的执行数据、验证码图元加密数据后,基于所述验证码图元
加密数据,判断所述执行数据是否满足预设的验证规则,其中,所述验证规则包括:首条连接线与末条连接线不相交;若所述执行数据满足预设的验证规则,则判定验证成功,并将判断结果返回,若所述执行数据不满足预设的验证规则,则判定验证失败,并将判断结果返回,使所述客户端基于所述服务端返回的判断结果,在所述操作区进行相应的显示。5.根据权利要求4所述的验证码的生成及验证方法,其特征在于,所述若满足所述相交规则则对所述至少4个顶点数组进行加密,得到验证码图元加密数据并发送至客户端,包括:获取当前时间戳并作为初始时间戳;利用私钥对所述至少4个顶点数组、初始时间戳进行编码,得到初始加密数据;将所述初始加密数据缓存至数据缓冲区,并利用base64对所述初始加密数据进行编码,得到验证码图元加密数据;将所述验证码图元加密数据以及公钥发送至客户端。6.根据权利要求5所述的验证码的生成及验证方法,其特征在于,所述在接收到所述客户端发送的执行数据、验证码图元加密数据后,基于所述验证码图元加密数据,判断所述执行数据是否满足预设的验证规则,包括:利用base64对所述执行数据进行解码,得到解码数据并缓存至所述数据缓存区;利用所述私钥对所述解码数据进行解码,得到操作行为数据、最终的顶点数组信息、初始时间戳;比较当前时间戳与初始时间戳,判断两者差值是否超过有效期,若未超过有效期,则继续判断所述最终的顶点数组信息是否满足预设的验证规则,若满足预设的验证规则,则继续判断操作行为数据是否异常,若不存在异常,则判定验证成功,并将判断结果返回客户端,若超过有效期或不满足预设的验证规则或存在异常,则判定验证失败,并将判断结果返回客户端。7.一种验证码的生成及验证方法,应用于客户端和服务端,其特征在于,包括:服务端在与操作区尺寸相同的范围内随机生成至少4个顶点,得到至少4个顶点数组;服务端判断所述至...
【专利技术属性】
技术研发人员:王功华,李盛,
申请(专利权)人:深圳软牛科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。