一种图形验证码的校验方法及其相关装置与流程

文档序号:25422208发布日期:2021-06-11 21:34阅读:340来源:国知局
一种图形验证码的校验方法及其相关装置与流程

本发明涉及验证码校验技术领域,特别是涉及一种图形验证码的校验方法及其相关装置。



背景技术:

验证码(captcha)是“completelyautomatedpublicturingtesttotellcomputersandhumansapart”(全自动区分计算机和人类的图灵测试)的缩写,是一种常见的人机识别手段,可以防止恶意注册登录、撞库、薅羊毛、灌水等。

网络飞速发展的时代,验证码做为服务端防御第一道门槛,变得越来越普遍及重要,同时也成为了黑客产必须攻克的第一道关卡。市面上最常见的验证码包括:字符图形验证码、滑块验证码、短信验证码、语音验证码等等。短信、语音类验证码需要第三方运营商介入,破解难度相对较大,但成本也相对较高,所以,成本廉价的图形、滑块类验证码成为了很多场景的首要选择。同时,随着计算机的算力以及机器学习等技术的飞速发展,图形、滑块类验证码的破解成本也逐渐降低,市面上这类简单的验证码逐步在失去他们的价值。



技术实现要素:

本申请主要解决的技术问题是提供一种图形验证码的校验方法及其相关装置,以增加破解难度和成本,提高验证安全性。

为解决上述技术问题,本申请采用的第一个技术方案是提供一种图形验证码的校验方法,该校验方法包括:对初始图形进行第一设定次数的图形变换,得到待校验图形,并依次记录每次图形变换对应的操作编码;对操作编码进行处理,得到操作位;将待校验图形与操作位发送至终端,并接收终端返回的当前操作位对应的操作编码;验证操作编码是否与第一次进行图形变换时所记录的操作编码一致。

其中,对操作编码进行处理,得到操作位的步骤之前还包括:对待校验图形进行第二设定次数的图形变换,并依次记录每次图形变换对应的操作编码;对每次图形变换对应的操作编码进行组合,得到操作位;其中,每次图形变换包括第一设定次数的图形变换和第二设定次数的图形变换。

其中,对操作编码进行处理,得到操作位的步骤包括:对操作编码进行排序,得到操作位;其中,操作位包括操作编码对应的图形变换。

为解决上述技术问题,本申请采用的第二个技术方案是提供一种图形验证码的校验方法,包括:获取待验证图形以及操作位,其中,待验证图形为初始图形经过图形变换得到的,操作位包括待验证图形的图形变换对应的操作编码;获取用户对操作位的操作,并将操作位对应的操作编码发送至服务器进行验证;接收服务器返回的图形验证成功提示。

其中,获取用户对操作位的操作,并将操作位的当前图形变换编码发送至服务器进行图形验证的步骤包括:获取用户移动操作位的位置信息,并根据操作位的位置信息排列待验证图形;记录操作位的位置信息对应的操作编码,并将操作位的当前位置信息对应的操作编码发送至服务器进行验证。

为解决上述技术问题,本申请采用的第三个技术方案是提供一种图形验证码的校验方法,包括:对初始图形进行第一设定次数的图形变换,得到待校验图形,并依次记录每次图形变换对应的操作编码;对操作编码进行处理,得到操作位;将待校验图形与操作位进行显示;获取用户对操作位的操作,并对操作位对应的操作编码进行验证;验证操作编码是否与第一次进行图形变换时所记录的操作编码一致。

为解决上述技术问题,本申请采用的第四个技术方案是提供一种图形校验装置,该图形验证装置包括:图形变换模块,用于对初始图形进行第一设定次数的图形变换,得到待校验图形;操作位生成模块,用于记录每次图形变换对应的操作编码,并对操作编码进行处理,得到操作位;校验模块,用于获取当前操作位对应的操作编码,并校验操作编码是否与第一次进行图形变换所记录的操作编码一致。

其中,图形验证装置包括:显示模块,用于显示待验证图形和操作位。

其中,图形变换模块还用于对待验证图形进行第二设定次数的图形变换。

为解决上述技术问题,本申请采用的第五个技术方案是提供一种智能终端,智能终端包括存储器和处理器,存储器用于存储程序指令,处理器用于执行程序指令以实现上述任一方法实施例中的图形验证码的校验方法。

本申请的有益效果是:对初始图形进行第一设定次数的图形变换,得到待校验图形,并依次记录每次图形变换对应的操作编码;对操作编码进行处理,得到操作位;将待校验图形与操作位发送至终端,并接收终端返回的当前操作位对应的操作编码;验证操作编码是否与第一次进行图形变换时所记录的操作编码一致,从而增加了破解难度和成本,提高了验证的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请图形验证码的校验方法第一实施方式的流程示意图;

图2为本申请初始图形的初始编号结构示意图;

图3为本申请初始图形进行第一次图形变换后的图形编号结构示意图;

图4为本申请初始图形进行第二次图形变换后的图形编号结构示意图;

图5为本申请初始图形进行第三次图形变换后的图形编号结构示意图;

图6为本申请图形验证码的校验方法第二实施方法的流程示意图;

图7为本申请图形验证码的校验方法第三实施方法的流程示意图;

图8为本申请图形验证装置一实施方式的结构示意图;

图9为本申请智能终端一实施方式的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,本文中使用的术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

请参阅图1,图1为本申请图形验证码的校验方法第一实施方式的流程示意图。如图1所示,该图形验证码的校验方法包括:

步骤s11:对初始图形进行第一设定次数的图形变换,得到待校验图形,并依次记录每次图形变换对应的操作编码。

在本步骤中,对初始图形进行第一设定次数的图形变换之前还包括从数据库或图形库中选取一张图片,并对选取的图形进行拆分成多个小图片,例如拆分成m×n个小图片,得到初始图形。初始图形为m×n个图片组成的图形。

本步骤由服务器完成,具体地,服务器随机生成一个数字a,对初始图形进行a次随机变换操作,得到待验证图形,并依次记录每次随机变换操作的操作编码,具体记为a、a-1、…、1。

步骤s12:对操作编码进行处理,得到操作位。

在本步骤之前还包括:对待验证图形进行第二设定次数的图形变换,并依次记录每次图形变换对应的操作编码。具体地,对待验证图形进行k-a次随机变换操作,并依次记录操作编码为a+1、a+2、…、k。

在另一实施方式中,得到待验证图形之后,对初始图形进行第二设定次数的图形变换,并依次记录每次图形变换对应的操作编码。

将进行第一设定次数的图形变换对应的操作编码与第二设定次数的图形变换对应的操作编码进行排列组合,得到操作位。具体地,将第一设定次数的图形变换对应的操作编码的逆序与第二设定次数的图形变换对应的操作编码的正序进行排列组合。具体得到操作编码为1、…、a、…、k的操作位。在本实施例中,操作位为可滑动的进度条或可点击的操作键,在此不作限定。通过依次对操作位进行操作,使待校验图形能变成正常图形或初始图形。

需要说明的是,在本实施例中,第一设定次数和第二设定次数均为正整数,第一设定次数和第二设定次数可以相同也可以不同,并无关联,在此不作限定。图形经过第二设定次数的图形变换后,由初始图形(正常图形)变换为非初始图形(非正常图形),使图形从1~k的变换过程中,先由待验证图形变为初始图形,再由初始图形变为非正常图形,从而保证操作操作位的过程中待验证图形变为初始图形,而非将操作位拖动到结束位置处时待验证图形变为初始图形,增加了解码的可靠性。

步骤s13:将待校验图形与操作位发送至终端,并接收终端返回的当前操作位对应的操作编码。

在本步骤中,用户通过移动或点击终端显示的操作位对待验证图形进行图形变换,具体地,操作位包括图形变换的操作编码,通过依次点击操作位中包含的操作编码来变换图形,待验证图形根据操作位对应的操作编码依次对图形进行设定顺序的变换。

直至待校验图形变换成正常图形或者初始图形时,获取当前图形变换对应的操作编码,并将该操作编码发送至服务器进行验证。

步骤s14:验证操作编码是否与第一次进行图形变换时所记录的操作编码一致。

若当前操作位对应的操作编码与第一次进行图形变换时所记录的操作编码一致时,则验证成功,并进入验证成功界面;若当前操作位对应的操作编码与第一次进行图形变换时所记录的操作编码不一致时,则验证失败,并继续停留在当前图形待验证界面。

为了更清楚地说明上述步骤s11-s13中的图形变换操作,请进一步参阅图2-5,假设选取的初始图形包含2×3=6张图片;对初始图形进行5次图形变换。具体的实现步骤如下:

第一步,是随机选取初始图形,将其拆分成6个小图片并进行编号,在本实施例中,编号可以如图2所示,图2为本申请初始图形的初始编号结构示意图。

第二步,随机生成数字a=3,并依次对初始图形进行3次图形变换操作,得到待校验图形,并依次记录每次图形变换对应的操作编码。

具体地,例如操作编码为a时:1和3进行交换,请参阅图3,图3为本申请初始图形进行第一次图形变换后的图形编号结构示意图。操作编码为b时:4和5进行交换,请参阅图4,图4为本申请初始图形进行第二次图形变换后的图形编号结构示意图。操作编码为c时:2和5进行交换,请参阅图5,图5为本申请初始图形进行第三次图形变换后的图形编号结构示意图。

第三步,继续对图形进行2次随机变换操作,分别为“操作编码d:3和6进行交换”和“操作编码e:2和4进行交换”,具体请参阅图2-5所示的变换过程,在此不作进一步图示。

第四步,将第二步图形变换对应的操作编码和第三步图形变换对应的操作编码进行排序,得到顺序编码为c、b、a、d、e的操作位。

第五步,将待校验图形和操作位发送至终端并进行显示,在本实施例中,显示结果如图5所示。

在本实施例中,解码过程包括:用户依次滑动操作位或者依次点击包含操作编码的操作位对终端显示的图形进行图形变换,直至图形变为正常图形或初始图形,并将当前操作位对应的操作编码发送至服务器进行验证,其中,操作位包括操作编码,通过移动操作位可对图形进行当前操作编码对应的图形变换。具体地,依次进行操作编码为c的图形变换之后得到的图形编号如4所示、进行操作编码为b的图形变换之后得到的图形编号如3所示、操作编码为a的图形变换之后得到图形编号如2所示,即得到初始图形,将当前图形变换对应的操作编码a发送至服务器进行验证。

上述为验证成功的情况,若当前图形变换对应的操作编码不为a,则验证失败,可重新发送操作编码进行验证。

本实施例的有益效果是:对初始图形进行图形变换得到随机的待校验图形,通过对待校验图形进行图形变换操作并记录图形变换对应的操作编码,将图形变换后的操作编码进行验证,若待验证的操作编码与第一次进行图形变换时所记录的操作编码一致,则验证成功,否则,则验证失败。通过对操作编码进行验证,增加破解难度和成本,且提高验证安全性。在本实施例中,机器通过图像识别得到初始图形也无法获得第一次图形变换对应的操作编码,从而提高了验证的安全性。

本申请还提供一种图形验证码的校验方法第二实施方式的流程示意图,如图6所示,图6为本申请图形验证码的校验方法第二实施方法的流程示意图。其中,该验证方法的执行主体对于用户终端,该图形验证码的验证方法包括:

步骤s21:获取待验证图形以及操作位。

其中,待验证图形是由初始图形经过图形变换得到的,在本实施例中可以是随机图形变换或者是按设定顺序的图形变换,在此不作限定。操作位为待验证图形进行图形变换对应的操作编码。

具体地,操作位可为待验证图形变换成初始图形的操作编码。

具体地,操作位的获取方法请参阅第一实施例所述。依次记录每次图形变换对应的操作编码,并对该操作编码进行排列组合,得到操作位,该操作位包括图形变换对应的操作编码。在本实施例中,用户通过移动操作位获取到当前操作位对应的操作编码,并根据当前操作位对应的操作编码对当前显示图形进行图形变换。在另一实施方式中,用户通过点击操作位对应的操作编码,并根据当前操作编码对待验证图形进行图形变换,在此不作限定。

在本实施方式中,通过对操作位进行操作,并根据该操作对待验证图形进行图形变换,直至待验证图形变为正常图形或变为初始图形。具体地,按照当前操作位对应的操作编码进行图形变换。

步骤s22:获取用户对操作位的操作,并将操作位对应的操作编码发送至服务器进行验证。

具体地,获取用户移动操作位的位置信息,并根据操作位的位置信息排列待验证图形,直至待验证图形转变为正常图形时,将当前操作位停止的位置对应的操作编码发送至服务器,通过服务器对当前终端的待验证图形所对应的操作编码进行验证。若发送的操作编码与初始图形第一次进行图形变换时的操作编码一致,则验证成功,若与初始图形第一次进行图形变换时的操作编码不一致,则验证失败。其中,本实施例中初始图形进行第一次图形变换时产生的操作编码是随机的,具体地,随机产生操作编码并进行记录。

步骤s23:接收服务器返回的图形验证成功提示。

在本步骤中还包括接收服务器返回的图形验证失败的提示。具体地,接收服务器返回的图形验证成功提示后,并进入图形验证成功界面;若验证失败,则接收服务器返回的图像验证失败提示,并继续停留在当前待校验界面。

本实施例的有益效果是:通过对待验证图形进行图形变换直至变为初始图形,并获取初始图形对应的操作编码,将该操作编码发送至服务器进行验证,其中,在本实施例中,服务器保存有初始图形经过图形变换变成待验证图形的第一次图形变换所对应的操作编码,通过验证操作编码是否与第一次图形变换所对应的操作编码一致来判断当前图形变换是否符合操作规范以及是否变为初始图形,从而判断是否验证成功。本实施例中的校验方法增加破解难度和成本,提高验证的安全性。

在本申请中,图形验证码的生成过程和解码过程也可由一个智能终端完成,具体地,本申请还公开了一种图形验证码的校验方法第三实施方式的流程示意图,如图7所示,图7为本申请图形验证码的校验方法第三实施方法的流程示意图。该图形验证码的校验方法包括:

步骤s31:对初始图形进行第一设定次数的图形变换,得到待校验图形,并依次记录每次图形变换对应的操作编码。

具体地,随机选取一张图片,并对其进行分割成多个小图片,得到初始图形。在本实施例中,其中初始图形可以为任意形状的图片,例如矩形、圆形、梯形、椭圆形、三角形等,在此不作限定,随机分割的小图片具有相同或不同的形状和大小,在此同样不作限定。

在本步骤中还包括随机生成第一设定次数,并对初始图形进行第一设定次数的图形变换,将待校验图形,并记录每次图形变换对应的操作编码。

步骤s32:对操作编码进行处理,得到操作位。

具体地,对进行第一设定次数的图形变换生成的每个操作编码进行逆向排序,得到操作位。在本实施例中,通过移动操作位,依次对待验证图形进行该操作编码对应的图形变换,其中,该操作编码为当前操作位对应的操作编码。

本步骤还包括:随机生成第二设次数,对初始图形或待验证图形进行第二设定次数的图形变换,并记录每次图形变换对应的操作编码。将第一设定次数的图形变换生成的操作编码与第二设定次数的图形变换生成的操作编码进行排序,生成操作位。具体地,将第一设定次数图形变换生成的操作编码进行逆向排列,并与正序排列的第二设定次数图形变换生成的操作编码进行组合,得到操作位。在本实施例中,通过继续对图形进行第二设定次数的操作变换,从而使用户移动操作位时,按照操作位对应的操作编码对图形依次进行图形变换时,图形有待验证图形转变为初始图形再转变为随机图形,从而提高操作编码验证的安全性。

步骤s33:将待校验图形与操作位进行显示。

在本实施例中,通过移动操作位对待校验图形进行图形变换,直至图形变换成正常图形,使用户可以根据显示的图形进行判断待验证图形是否变为正常图形,当待验证图形变换成正常图形时,停止继续对待验证图形进行变换操作。

步骤s34:获取用户对操作位的操作,并对操作位对应的操作编码进行验证。

通过用户对操作位的移动操作,按照操作编码的顺序依次对待校验图形进行变换,在本实施例中,操作位包括操作编码的顺序。获取用户移动操作位的的位置信息,对图形进行变换,并显示变换后的图形。并获取当前操作位的位置对应的操作编码,对当前操作位的操作编码进行验证。

步骤s35:验证操作编码是否与第一次进行图形变换时所记录的操作编码一致。

若获取到的操作编码与第一次进行图形变换时所记录的操作编码一致,则验证成功,并进入验证成功界面;若获取到的操作编码与第一次进行图形变换时所记录的操作编码不一致,则验证失败,并继续停留在该图形待验证界面。

本申请还提供一种图形验证装置,如图8所示,图8为本申请图形验证装置80一实施方式的结构示意图。该图形验证装置80包括:图形变换模块81,用于对初始图形进行第一设定次数的图形变换,得到待校验图形;操作位生成模块82,用于记录每次图形变换对应的操作编码,并对操作编码进行处理得到操作位;校验模块83,用于获取当前操作位对应的操作编码,并验证该操作编码是否与第一次进行图形变换时所记录的操作编码一致。在本实施例中,图形变换模块81还用于对待校验图形进行第二设定次数的图形变换,操作位生成模块82,还用于将第一设定次数图形变换生成的操作编码与第二设定次数图形变换生成的操作编码进行组合,生成操作位。本实施例中,该图形验证装置80还包括显示装置,用于显示待验证图形和操作位,该显示装置还用于获取用户对操作位的操作并根据操作位的操作显示变换后的图形。

本申请还提供一种智能终端,请参阅图9,图9为本申请智能终端90一实施方式的结构示意图,如图9所示,该智能终端90包括存储器92和处理器91,存储器92用于存储计算机程序指令,处理器91用于执行程序指令以实现上述方法实施例中的图形验证码的校验方法。该智能终端90除包括上述处理器91和存储器92之外,还可根据需求包括触摸屏、打印组件、通信电路等,在此不做限定。

具体而言,处理器91用于控制其自身以及存储器92以实现上述任一消费端300文件共享方法实施例中的步骤。处理器91还可以称为cpu(centralprocessingunit,中央处理单元)。处理器91可能是一种集成电路芯片,具有信号的处理能力。处理器91还可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器91可以由多个集成电路芯片共同实现。

具体地,集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而计算机可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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