一种验证码的防刷方法与流程

文档序号:17373593发布日期:2019-04-12 23:03阅读:203来源:国知局
一种验证码的防刷方法与流程

本发明涉及互联网技术领域,尤其涉及一种验证码的防刷方法。



背景技术:

随着计算机技术的发展和黑客技术的不断提高,网站和论坛通过验证码,防止恶意破解密码、申请注册、论坛灌水等。验证码从纯粹的数字验证码到扭曲的图片验证码,用户需要肉眼识别图中的符合信息并且完成手工键盘输入,由程序进行验证码匹配判断。随着ocr(opticalcharacterrecognition,光学字符识别)与人工智能等技术的发展,传统的验证码很容易被破解。



技术实现要素:

本发明针对现有技术的不足提供一种验证码的防刷方法,能有效降低验证码被软件破解的成功率,提高了验证码的安全性。

本发明提供了一种验证码的防刷方法,包括:

在需要输入验证码的客户端界面上生成验证图片以及与所述验证图片相对应的参照图片,所述验证图片和所述参照图片分别包括多个节点以及与各个所述节点相应的图元,所述验证图片的各个所述节点以及所述图元按照预先设定的布局格式进行布局,所述验证图片的各个图元均为动态图元;所述动态图元包括间隔预设时间各个图元之间相互变换;所述验证图片中各个节点变换前后可对应不同的坐标,当各个图元之间相互变换时,各个图元的对应的节点保持不变;

根据所述参照图片上的各个图元的排列顺序,获取在所述验证图片的画图轨迹,依次提取画图轨迹中的各个节点,并根据提取到的节点,生产节点列表;所述画图轨迹为在验证图片中依次选取的图元所对应的节点所形成的轨迹;

当生成的节点列表与所述参照图片中的节点列表相同时,表示验证码输入成功。

进一步,所述间隔预设时间各个图元之间相互变换,包括:

获取各个图元在布局格式中的节点和坐标值,根据预先设定的变换方式变换对应坐标上的图元,使得各个图元变换前后的节点不变。

进一步,所述预先设定的变换方式,包括:将所述验证图片中的各个图元在坐标x轴上的值与y轴上的值对调。

进一步,所述预先设定的变换方式,包括:

将y轴上的值yn相同的所有图元及节点对应的当前x轴上的值xn根据预设公式得到新的x轴上的值x′n,所述新的x轴上的值x′n与所述y轴上的值yn组合形成对应图元变换后的坐标值(x′n、yn);其中,

当n、m均为正整数,且当xn+n≤m时,x′n=xn+n;

当n、m均为正整数,且当xn+n>m时,x′n=xn+n-m;

当n为负整数、m为正整数,且当xn-|n|≤0时,x′n=xn-|n|+m;

当n为负整数、m为正整数,且当xn-|n|>0时,x′n=xn-|n|;

其中,m为所述布局格式中x轴上的值的个数。

进一步,所述预先设定的变换方式,还包括:

将x轴上的值xn相同的所有图元及节点对应的当前y轴上的值yn根据预设公式得到新的y轴上的值y′n,所述新的x轴上的值y′n与所述x轴上的值xn组合形成对应图元变换后的坐标值(y′n,xn);其中,

当n、m均为正整数,且当yn+n≤m时,y′n=yn+n;

当n、m均为正整数,且当yn+n>m时,y′n=yn+n-m;

当n为负整数、m为正整数,且当yn-|n|≤0时,y′n=yn-|n|+m;

当n为负整数、m为正整数,且当yn-|n|>0时,y′n=yn-|n|;

其中,m为所述布局格式中y轴上的值的个数。

进一步,所述动态图元还包括在当前坐标位置上以动态显示的方式显示图元。

进一步,所述验证图片为支持鼠标和触摸方式交互的图片。

进一步,在所述参照图片中,至少一个所述图元上设有干扰像素。

与现有技术相比,本发明具有以下有益效果:

本发明的验证码从时间、位置、以及形状上均设置为动态,与现有技术中的验证码相比,本发明的验证码具有很高的识别难度,能有效防止软件自动识别破解,提升了验证码的安全性能。

附图说明

图1为本发明实施例提供的验证码输入方法的实施流程图;

图2为本发明实施例提供的在实际应用中表格布局的较佳的样例图。

图3为本发明实施例提供的其中一种验证图片样例图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1-3所示,一种验证码的防刷方法,包括:

步骤s01,在需要输入验证码的客户端界面上生成验证图片以及与所述验证图片相对应的参照图片,所述验证图片和所述参照图片分别包括多个节点以及与各个所述节点相对应的图元,所述验证图片的各个所述节点以及所述图元按照预先设定的布局格式进行布局,所述验证图片的各个图元均为动态图元;所述动态图元包括间隔预设时间各个图元之间相互变换;所述验证图片中各个节点变换前后可对应不同的坐标,当各个图元之间相互变换时,各个图元对应的节点保持不变。

其中,所述布局格式包括但不限于表格布局和圆形布局,表格布局可以是a*b的表格布局,其中a为大于1的整数,其中b为大于1的整数。a和b的值可以为系统随机确定的,也可以由系统内部固定下来。优选地,a和b的值相等。在本实施例中,以表格布局为例,验证图片为一个a*b的布局格式,其中a为3,b为3,形成一个九宫格的验证图片。如图2所示。表格布局中的各个表格均对应唯一的一个节点,每一个节点均可以填充唯一一个图元。表格布局中的各个图元之间可以相互变换,当各个图元相互变换时,各个图元对应的节点保持不变,各个图元变换前后对应的坐标不同,即变换前后各个节点对应不同的坐标。

步骤s02,根据所述参照图片上的各个图元的排列顺序,获取在所述验证图片的画图轨迹,依次提取画图轨迹中的各个节点,并根据提取到的节点,生成节点列表;所述画图轨迹为在验证图片中依次选取的图片所对应的节点所形成的轨迹。所述节点列表是按照提取的时间先后顺序排列的节点列表。

步骤s03,当生成的节点列表与所述参照图片中的节点列表相同时,表示验证码输入成功。具体地,用户可根据所述参照图片上的各个图元的排列顺序,依次点选在所述验证图片上的若干个图元,以获取若干个节点。所述若干个图元与所述参照图片上的所有图元一一对应。然后按照用户点选图元的时间先后顺序生成节点列表。最后,将生成的节点列表与所述参照图片中的节点列表作对比,当两个列表相同时,表示验证码输入成功。

在步骤s01中,所述间隔预设时间各个图元之间相互变换,包括:

获取各个图元在布局格式中的节点和坐标值,间隔预设时间内根据预先设定的变换方式变换对应坐标上的图元,使得各个图元变换前后的节点保持不变。其中,所述坐标为二维的直角坐标系,包括与水平方向平行的x轴、与所述x轴垂直的y轴。所述预设时间可以为系统随机设定,也可以为人为设定。

在实施例一中,所述预先设定的变换方式,包括:将所述验证图片中的各个图元在坐标x轴上的值与y轴上的值对调。具体为,首先将所述验证图片设置在直角坐标系内,使得验证图片中的各个图元及节点均具有唯一的一个坐标值;然后获取所述验证图片中的所有图元的当前坐标值,如:(x1,y1)、(x2,y2)、……(xn,yn);然后将各个图元的当前坐标值中x轴上的值与y轴上的值各自对调,得到变换后的新坐标值,即:(y1,x1)、(y2,x2)……(yn,xn)。各个图元及节点根据新坐标值自动变换至对应的坐标位置,通过采用该种方式将验证图片中的各个图元及节点的位置发生变换。在此过程中,验证图片的布局格式不变,而且布局格式中各个图元变换前后所对应的节点均保持不变。

在实施例二中,所述预先设定的变换方式,包括:首先将所述验证图片设置在直角坐标系内,使得验证图片中的各个图元及节点均具有唯一的一个坐标值;然后将y轴上具有相同的值yn的所有图元对应的当前x轴上的值xn根据预设公式得到新的x轴上的值x′n,所述新的x轴上的值x′n与所述y轴上的值yn组合形成对应图元变换后的新坐标值(x′n、yn);其中,

当n、m均为正整数,且当xn+n≤m时,x′n=xn+n;

当n、m均为正整数,且当xn+n>m时,x′n=xn+n-m;

当n为负整数、m为正整数,且当xn-|n|≤0时,x′n=xn-|n|+m;

当n为负整数、m为正整数,且当xn-|n|>0时,x′n=xn-|n|;

其中,m为所述布局格式中x轴上的值的个数。其中,n是指在一次变换中,各个图元变换前的值与变换后的值之间相差n个单位。例如,如图3所示,在4*4的表格布局中,m为4,变换前:节点a1的坐标值为(1,4),节点a2的坐标值为(2,4),节点a3的坐标值为(3,4),节点a4的坐标值为(4,4)。若将n设为-2,节点a1、节点a2、节点a3、节点a4变换后的新坐标值分别为:(3,4)、(4,4)、(1,4)(2,4)。然后根据所述新坐标值,将节点a1、节点a2、节点a3、节点a4变换到对应的坐标位置上,得到图元及节点不变的新的验证图片。

在实施例三中,所述预先设定的变换方式,还包括:首先将所述验证图片设置在直角坐标系内,使得验证图片中的各个图元及节点均具有唯一的一个坐标值;然后将x轴上具有相同的值xn的所有图元及节点对应的当前y轴上的值yn根据预设公式得到新的y轴上的值y′n,所述新的x轴上的值y′n与所述x轴上的值xn组合形成对应图元变换后的新坐标值(y′n,xn);其中,

当n、m均为正整数,且当yn+n≤m时,y′n=yn+n;

当n、m均为正整数,且当yn+n>m时,y′n=yn+n-m;

当n为负整数、m为正整数,且当yn-|n|≤0时,y′n=yn-|n|+m;

当n为负整数、m为正整数,且当yn-|n|>0时,y′n=yn-|n|;

其中,m为所述布局格式中x轴上的值的个数。其中,n是指在一次变换中,各个图元变换前的值与变换后的值之间相差n个单位。y轴上的变化方法与上一实施例中的相似,在此不再赘述。

为了更清楚详细地说明本发明的技术方案,以实施例二为例,如图3所示,在4*4的表格布局中,m为4,系统随机选定四个图元按照先后顺序组合成参照图片,所述四个图元所对应的节点分别为:节点a1、节点a2、节点a3、节点a4,同时根据各个节点的先后顺序自动生成节点列表l。此时,节点a1、节点a2、节点a3、节点a4在直角坐标系中对应的初始坐标值分别为:(1,4)、(2,4)、(3,4)、(4,4)。用户需要在验证图片的16个图元中依次选取节点a1、节点a2、节点a3、节点a4所对应的四个图元,以获取对应的节点列表l′。在此过程中,用户在点选坐标值分别为(1,4)、(2,4)的图元时,系统自动获取坐标值(1,4)、(2,4)所对应的节点a1和节点a2。此后,预设时间到达,在预先设定的变换方式的变换下,验证图片上的各个图元及节点在坐标系上的位置均发生变化。优选地,若将n设为2,经上述公式变换后:节点a1的新坐标值为(3,4),节点a2的新坐标值为(4,4),节点a3的新坐标值为(1,4),节点a4的新坐标值为(2,4)。此时,用户根据参照图片中另外两个图元去点选新坐标值分别为(1,4)、(2,4)的图元时,系统自动获取新坐标值(1,4)、(2,4)所对应的节点a3和节点a4。然后,将获取到的节点a1、节点a2、节点a3和节点a4按照获取的时间先后顺序生成节点列表l′。最后将生成的节点列表l′与参照图片中选定的节点列表l进行比较。在此实施例中节点列表l′和节点列表l相同,代表验证码输入成功。

优选地,所述动态图元还包括各个图元在当前坐标位置上以动态显示的方式显示图元。各个图元之间的动态显示方式可以相同,也可以不相同。所述动态显示的方式包括但不限于:百叶窗的动态呈现效果、棋盘式的呈现效果、舞动式的呈现效果等等。

优选地,所述验证图片为支持鼠标和触摸方式交互的图片。所述图元包括但不限于:汉字、圆形、三角形、梯形、矩形、棱形等,本发明实施例优选为汉字。所述验证图片中的所有汉字可以为系统随机确定,也可以由系统内部固定一个数量较多的汉字集合,各个图元从所述汉字集合中随机产生。

优选地,在所述参照图片中,至少一个所述图元上设有干扰像素,本发明优选在各个所述图元上均设有所述干扰像素,以进一步提高所述参照图片的可靠性,进一步增强后续输入验证码的安全性。所述干扰像素为设置在图元上、不占据节点和坐标的、能给用户形成视觉干扰的一些像素。所述干扰像素包括但不限于图案、形状、颜色等,本实施例优选为形状,例如横线。

本发明的验证码从时间、位置、以及形状上均设置为动态,与现有技术中的验证码相比,本发明的验证码具有很高的识别难度,能有效防止软件自动识别破解,提升了验证码的安全性能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1