CN111338938A - 一种基于动态路径的滑块验证方法及装置 - Google Patents
一种基于动态路径的滑块验证方法及装置 Download PDFInfo
- Publication number
- CN111338938A CN111338938A CN202010103992.6A CN202010103992A CN111338938A CN 111338938 A CN111338938 A CN 111338938A CN 202010103992 A CN202010103992 A CN 202010103992A CN 111338938 A CN111338938 A CN 111338938A
- Authority
- CN
- China
- Prior art keywords
- slider
- moving
- distance
- picture
- verified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供了一种基于动态路径的滑块验证方法及装置,本发明涉及研发管理技术领域,方法包括:获取滑块验证码原图及待验证图片,其中,待验证图片包括滑块及能够与滑块契合的缺口;识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离;利用预设的第一算法模拟人为移动轨迹移动待验证图片中的滑块,直至滑块的移动距离大于总距离,其中,移动轨迹的速度随移动距离的增大而减小;利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合,其中,回调轨迹的速度小于等于移动轨迹的速度。本发明实施例提供的技术方案能够解决现有技术中计算机自动化破解滑块验证码的成功率低的问题。
Description
【技术领域】
本发明涉及研发管理技术领域,尤其涉及一种基于动态路径的滑块验证方法及装置。
【背景技术】
随着互联网的高速发展,互联网安全日益重要。市面上有各种各样的安全组件,如图形验证码、滑块验证码、点选验证码、短信验证码等等。其中网站登录模块中图形验证码和滑块验证码占了绝大部分比例。
软件测试中自动化测试能够带来提高的测试效率,但如有上述验证的情况下既无法实施,对自动化测试的开展带来了难点,尤其的各个滑块验证码后的人机验证算法机制,大大降低了滑块验证成功率。
【发明内容】
有鉴于此,本发明实施例提供了一种基于动态路径的滑块验证方法及装置,用以解决现有技术中计算机自动化破解滑块验证码的成功率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种基于动态路径的滑块验证方法,所述方法包括:
获取滑块验证码原图及待验证图片,其中,所述待验证图片包括滑块及能够与所述滑块契合的缺口;识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离;利用预设的第一算法模拟人为移动轨迹移动所述待验证图片中的所述滑块,直至所述滑块的移动距离大于所述总距离,其中,所述移动轨迹的速度随所述移动距离的增大而减小;利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合,其中,所述回调轨迹的速度小于等于所述移动轨迹的速度。
可选地,所述识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离的步骤,包括:
从第一预设方向依次获取所述滑块验证码原图及所述待验证图片中坐标信息相一致的两个像素点的三原色值,并计算所述两个像素点的三原色值的差值绝对值;当所述两个像素点的三原色值的差值绝对值大于第一预设值时,确定所述待验证图片中的像素点为所述缺口中的像素点;从所述第一预设方向的反方向依次获取所述滑块验证码原图及所述待验证图片中坐标信息相一致的两个像素点的三原色值,并计算所述两个像素点的三原色值的差值绝对值;当所述两个像素点的三原色值的差值绝对值大于第二预设值时,确定所述待验证图片中的像素点为所述滑块中的像素点;根据确定的所述缺口中的像素点的坐标信息及所述滑块中的像素点的坐标信息计算所述滑块滑动至所述缺口的总距离。
可选地,所述利用预设的第一算法模拟人为移动轨迹移动所述滑块,直至所述滑块的移动距离大于所述总距离的步骤,包括:设置第一阶段移动过程中的单次移动距离为第一随机像素点数量;当0<i≤0.05时,i表示移动距离/总距离,设置第一阶段移动过程中的单次移动等待时间小于等于5毫秒,模拟人为移动轨迹移动所述滑块;当0.05<i<0.85时,设置第一阶段移动过程中的单次移动等待时间大于10毫秒小于50毫秒,模拟人为移动轨迹移动所述滑块;当i≥0.85时,设置第一阶段移动过程中的单次移动等待时间大于100毫秒小于200毫秒,模拟人为移动轨迹移动所述滑块,直至所述滑块的移动距离大于所述总距离。
可选地,所述利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合的步骤,包括:判断所述滑块的移动距离是否大于所述总距离;如是,设置第二阶段移动过程中的单次移动距离为第二随机像素点数量;按第一阶段移动方向的反方向移动所述滑块,直至所述滑块与所述缺口相契合,其中,设置第二阶段移动过程中单次移动的等待时间大于100毫秒小于200毫秒。
可选地,在所述按第一阶段移动方向的反方向回调所述滑块,直至所述滑块与所述缺口相契合的步骤,包括:
按第一阶段移动方向的反方向移动所述滑块,使得所述总距离与所述移动距离的差值为预设距离;按第一阶段移动方向移动所述滑块预设距离,直至所述滑块与所述缺口相契合。
可选地,在所述利用预设的第一算法模拟人为移动轨迹移动所述滑块之前,所述方法还包括:设置所述移动轨迹及所述回调轨迹的纵向随机偏移像素点数量。
可选地,所述获取滑块验证码原图及待验证图片的步骤,包括:利用selenium驱动浏览器,以获取滑块验证码原图及待验证图片。
为了实现上述目的,根据本发明的一个方面,提供了一种基于动态路径的滑块验证装置,所述装置包括:获取单元,用于获取滑块验证码原图及待验证图片,其中,所述待验证图片包括滑块及能够与所述滑块契合的缺口;识别单元,用于识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离;第一移动单元,用于利用预设的第一算法模拟人为移动轨迹移动所述待验证图片中的所述滑块,直至所述滑块的移动距离大于所述总距离,其中,所述移动轨迹的速度随所述移动距离的增大而减小;第二移动单元,用于利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合,其中,所述回调轨迹的速度小于等于所述移动轨迹的速度。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机非易失性存储介质,所述存储介质包括存储的程序,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的基于动态路径的滑块验证方法。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述的基于动态路径的滑块验证方法的步骤。
在本方案中,计算机通过将模拟人为移动轨迹和回调轨迹,使得更加贴合人滑动滑块的状态,简单准确地进行滑动验证码自动化识别,提高滑块验证的成功率。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种可选的基于动态路径的滑块验证方法的流程图;
图2是本发明实施例提供的一种可选的待验证图片的示意图;
图3是本发明实施例提供的一种可选的基于动态路径的滑块验证装置的示意图;
图4是本发明实施例提供的一种可选的计算机设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述终端,但这些终端不应限于这些术语。这些术语仅用来将终端彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一终端也可以被称为第二终端,类似地,第二终端也可以被称为第一终端。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1是根据本发明实施例的一种基于动态路径的滑块验证方法的流程图,如图1所示,该方法包括:
步骤S01,获取滑块验证码原图及待验证图片,其中,待验证图片包括滑块及能够与滑块契合的缺口;
步骤S02,识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离;
步骤S03,利用预设的第一算法模拟人为移动轨迹移动待验证图片中的滑块,直至滑块的移动距离大于总距离,其中,移动轨迹的速度随移动距离的增大而减小;
步骤S04,利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合,其中,回调轨迹的速度小于等于移动轨迹的速度。
在本方案中,计算机通过将模拟人为移动轨迹和回调轨迹,使得更加贴合人滑动滑块的状态,简单准确地进行滑动验证码自动化识别,提高滑块验证的成功率。
下面对本实施例提供的基于动态路径的滑块验证方法的具体技术方案进行详细的说明。
步骤S01,获取滑块验证码原图及待验证图片,其中,待验证图片包括滑块及能够与滑块契合的缺口。
在本实施例中,利用selenium驱动浏览器,以获取滑块验证码原图及待验证图片。在其他实施方式中,可以利用webdriver来替代selenium,需要说明的是,webdriver实际上为selenium的第二代版本,selenium是一个自动化测试工具,用它来实现鼠标的操作,在此不做限定。
在另一种实施方式中,也可以选择selenium+phantomjs的组合来模拟浏览器,phantomjs是一个无界面浏览器,伪装一个普通浏览器用户,也可以用headless chrome或Firefox来代替phantomjs。
selenium若能获取到滑块验证码原图和待验证图片的网页链接,并能在浏览器中打开,则直接在浏览器中打开滑块验证码原图和和待验证图片的网页链接,截图即可。
若不能获取到滑块验证码原图和待验证图片的网页链接,则从滑块验证码中获取截图,具体地,滑块验证码原图通过元素的坐标计算出的原图的高度和宽度进行截取;待验证图片先点击滑块,再按原图截取方式截取图片。
其中,通过元素的坐标计算出的滑块验证码原图的高度和宽度的步骤包括:获取计算机的分辨率,如(1920,1080);获取滑块验证码原图所在网页的大小,如(1280,676);并通过相对路径方式进行元素定位,得到滑块验证码原图在计算机界面上的高度和宽度。
图2是根据本发明实施例的一种待验证图片的示意图,如图2所示,步骤S02,识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离,具体步骤包括:
步骤S021,从第一预设方向依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值。在本实施方式中,第一预设方向为从右往左的方向。
步骤S022,当两个像素点的三原色值的差值绝对值大于第一预设值时,确定待验证图片中的像素点为缺口中的像素点。
可以理解地,当从右往左(即X方向的反方向)的一排排扫描过程中,如果原图的像素点和待验证图片的像素点的三原色值的差值为零,就表示这两个像素点完全一样,同样地,如果差值不为零,就表示这两个像素点不一样,比较滑块验证码原图可知,原图与待验证图片之间有两个不同的区域,分别是滑块区域和缺口区域。
步骤S023,从第一预设方向的反方向(即X方向)依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值。即从左往右进行依次获取。
步骤S024,当两个像素点的三原色值的差值绝对值大于第二预设值时,确定待验证图片中的像素点为滑块中的像素点。在本实施方式中,第二预设值小于第一预设值,因为缺口内的像素点的三原色差值大于滑块中的像素点的三原色差值。
步骤S025,根据确定的缺口中的像素点的坐标信息及滑块中的像素点的坐标信息计算滑块滑动至缺口的总距离。例如缺口中的像素点(x1,y1),滑块中的像素点(x2,y2),总距离(d)=x2-x1。
本方案的不是用所有像素点进行对比,这样执行效率很低,无用功较多,这里只进行依次循环对比,不用全部取完后再依次取点进行对比,对比拿到差异点后就退出,提高效率,减少无用功。
在其他实施方式中,可以从左往右一排排的扫描所有的像素点,也可以从右往左一排排的扫描所有的像素点。在找到所有三原色值的差值绝对值为非零的像素点后,将差值绝对值大于第一预设值的像素点确认为缺口中的像素点,其余差值绝对值为非零的像素点确认为滑块的像素点;再根据确认的缺口中的像素点的坐标信息及滑块中的像素点的坐标信息计算滑块滑动至缺口的总距离。具体地,找到滑块的中心位置(x1,y1)和缺口的中心位置(x2,y2),总距离(d)=x2-x1。
可选地,步骤S03,利用预设的第一算法模拟人为移动轨迹移动待验证图片中的滑块,直至滑块的移动距离大于总距离的步骤,包括:
步骤S031,设置第一阶段移动过程中的单次移动距离为第一随机像素点数量;
步骤S032,当0<i≤0.05时,i表示移动距离/总距离,设置第一阶段移动过程中的单次移动等待时间小于等于5毫秒,模拟人为移动轨迹移动滑块;
步骤S033,当0.05<i<0.85时,设置第一阶段移动过程中的单次移动等待时间大于10毫秒小于50毫秒,模拟人为移动轨迹移动滑块;
步骤S034,当i≥0.85时,设置第一阶段移动过程中的单次移动等待时间大于100毫秒小于200毫秒,模拟人为移动轨迹移动滑块,直至滑块的移动距离大于总距离。
例如,第一阶段每次向X方向移动距离为5个像素点,也可以在预设的一个移动范围内随机移动,例如[5,8],则会随机取5、6、7,每取一次则与移动距离累加,比如第一次取5,第二次取7,则移动距离为5+7,一直循环,直到移动距离大于总距离时退出循环。
具体地,第一算法的计算机代码为,int r=RandomUtils.nextInt(5,8),r表示移动距离(X方向的像素点数量),d表示总距离,i=r/d;
当0<i≤0.05时,sleepTime=RandomUtils.nextInt(0,5);
当0.05<i<0.85时,sleepTime=RandomUtils.nextInt(10,50);
当i≥0.85时,sleepTime=RandomUtils.nextInt(100,200)。
可以理解地,刚开始移动滑块时为第一阶段,随着移动距离(r1)的增加速度变慢,通过设置三个移动区间,每个移动区间的等待时间不同,更加逼真地模拟真实的人类移动状态。
可选地,步骤S04,利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合的步骤,包括:
步骤S041,判断滑块的移动距离是否大于总距离;
步骤S042,如是,设置第二阶段移动过程中的单次移动距离为第二随机像素点数量。可以理解地,当滑块滑过缺口后,需要模拟人为的回调动作,在回调时,速度较慢。例如,第二阶段每次移动距离为1或2个像素点。
步骤S043,按第一阶段移动方向的反方向(即X方向的反方向)移动滑块,直至滑块与缺口相契合,其中,设置第二阶段移动过程中单次移动的等待时间大于100毫秒小于200毫秒。
具体地,第二算法的计算机代码为,int r=RandomUtils.nextInt(1,3),r=-r,即取反方向回调,整个回调过程中均设置sleepTime=RandomUtils.nextInt(100,200),直至滑块与缺口相契合。
步骤S043,在按第一阶段移动方向的反方向回调滑块,直至滑块与缺口相契合的步骤,包括:
按第一阶段移动方向的反方向移动滑块,使得总距离与移动距离的差值为预设距离;如图2所示,移动距离r2。
按第一阶段移动方向移动滑块预设距离,直至滑块与缺口相契合。如图2所示,移动距离r3。
具体算法为:int r=RandomUtils.nextInt(1,3),r=r,即正方向回调,设置sleepTime=RandomUtils.nextInt(100,200),本实施例中为5个像素点。
通过两次回调,使得回调轨迹更加贴合人类状态。
可选地,在步骤S03,利用预设的第一算法模拟人为移动轨迹移动滑块之前,方法还包括:设置移动轨迹及回调轨迹的纵向随机偏移像素点数量。
具体算法为:
y=RandomUtils.nextInt(0,2)==1?RandomUtils.nextInt(0,2):0-RandomUtils.nextInt(0,2)
可以理解地,增加人为的上下跳动,增加人机验证的干扰。整个过程中通过科学的植入算法位、干扰项、思考时间,增加自动化在移动滑块时的人属性特性,巧妙的迷幻滑块自身的人机行为验证算法,从而增加自动化的可行性、可稳定性。
可选地,在步骤S04之后,方法还包括:
检测滑块验证是否成功;如果验证失败,重复步骤S01~S04;如果成功,则结束。
可以理解地,当滑块与缺口契合时,滑动验证码就表示验证成功,系统就会允许登录,返回验证成功值,例如我们平常登录12306,就会提示验证成功。如果验证不成功,那么就会重复验证。
在本方案中,计算机通过将模拟人为移动轨迹和回调轨迹,使得更加贴合人滑动滑块的状态,简单准确地进行滑动验证码自动化识别,提高滑块验证的成功率。
本发明实施例提供了一种基于动态路径的滑块验证装置,该装置用于执行上述基于动态路径的滑块验证方法,如图3所示,该装置包括:获取单元10、识别单元20、第一移动单元30、第二移动单元40。
获取单元10,用于获取滑块验证码原图及待验证图片,其中,待验证图片包括滑块及能够与滑块契合的缺口;
识别单元20,用于识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离;
第一移动单元30,用于利用预设的第一算法模拟人为移动轨迹移动待验证图片中的滑块,直至滑块的移动距离大于总距离,其中,移动轨迹的速度随移动距离的增大而减小;
第二移动单元40,用于利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合,其中,回调轨迹的速度小于等于移动轨迹的速度。
在本方案中,计算机通过将模拟人为移动轨迹和回调轨迹,使得更加贴合人滑动滑块的状态,简单准确地进行滑动验证码自动化识别,提高滑块验证的成功率。
在本实施例中,利用selenium驱动浏览器,以获取滑块验证码原图及待验证图片。在其他实施方式中,可以利用webdriver来替代selenium,需要说明的是,webdriver实际上为selenium的第二代版本,selenium是一个自动化测试工具,用它来实现鼠标的操作,在此不做限定。
在另一种实施方式中,也可以选择selenium+phantomjs的组合来模拟浏览器,phantomjs是一个无界面浏览器,伪装一个普通浏览器用户,也可以用headless chrome或Firefox来代替phantomjs。
selenium若能获取到滑块验证码原图和待验证图片的网页链接,并能在浏览器中打开,则直接在浏览器中打开滑块验证码原图和和待验证图片的网页链接,截图即可。
若不能获取到滑块验证码原图和待验证图片的网页链接,则从滑块验证码中获取截图,具体地,滑块验证码原图通过元素的坐标计算出的原图的高度和宽度进行截取;待验证图片先点击滑块,再按原图截取方式截取图片。
其中,通过元素的坐标计算出的原图的高度和宽度的步骤包括:获取计算机的分辨率,如(1920,1080);获取滑块验证码原图所在网页的大小,如(1280,676);并通过相对路径方式进行元素定位,得到滑块验证码原图在计算机界面上的高度和宽度。
可选地,识别单元20包括第一计算子单元、第一确定子单元、第二计算子单元、第二确定子单元、第三计算子单元。
第一计算子单元,用于从第一预设方向依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值。在本实施方式中,第一预设方向为从右往左的方向。
第一确定子单元,用于当两个像素点的三原色值的差值绝对值大于第一预设值时,确定待验证图片中的像素点为缺口中的像素点。
可以理解地,当从右往左(即X方向的反方向)的一排排扫描过程中,如果原图的像素点和待验证图片的像素点的三原色值的差值为零,就表示这两个像素点完全一样,同样地,如果差值不为零,就表示这两个像素点不一样,比较滑块验证码原图可知,原图与待验证图片之间有两个不同的区域,分别是滑块区域和缺口区域。
第二计算子单元,用于从第一预设方向的反方向(即X方向)依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值。即从左往右进行依次获取。
第二确定子单元,用于当两个像素点的三原色值的差值绝对值大于第二预设值时,确定待验证图片中的像素点为滑块中的像素点。在本实施方式中,第二预设值小于第一预设值,因为缺口内的像素点的三原色差值大于滑块中的像素点的三原色差值。
第三计算子单元,用于根据确定的缺口中的像素点的坐标信息及滑块中的像素点的坐标信息计算滑块滑动至缺口的总距离。例如缺口中的像素点(x1,y1),滑块中的像素点(x2,y2),总距离(d)=x2-x1。
本方案的不是用所有像素点进行对比,这样执行效率很低,无用功较多,这里只进行依次循环对比,不用全部取完后再依次取点进行对比,对比拿到差异点后就退出,提高效率,减少无用功。
在其他实施方式中,可以从左往右一排排的扫描所有的像素点,也可以从右往左一排排的扫描所有的像素点。在找到所有三原色值的差值绝对值为非零的像素点后,将差值绝对值大于第一预设值的像素点确认为缺口中的像素点,其余差值绝对值为非零的像素点确认为滑块的像素点;再根据确认的缺口中的像素点的坐标信息及滑块中的像素点的坐标信息计算滑块滑动至缺口的总距离。具体地,找到滑块的中心位置(x1,y1)和缺口的中心位置(x2,y2),总距离(d)=x2-x1。
可选地,第一移动单元30包括第一设置子单元、第一移动子单元、第二移动子单元、第三移动子单元。
第一设置子单元,用于设置第一阶段移动过程中的单次移动距离为第一随机像素点数量;
第一移动子单元,用于当0<i≤0.05时,i表示移动距离/总距离,设置第一阶段移动过程中的单次移动等待时间小于等于5毫秒,模拟人为移动轨迹移动滑块;
第二移动子单元,用于当0.05<i<0.85时,设置第一阶段移动过程中的单次移动等待时间大于10毫秒小于50毫秒,模拟人为移动轨迹移动滑块;
第三移动子单元,用于当i≥0.85时,设置第一阶段移动过程中的单次移动等待时间大于100毫秒小于200毫秒,模拟人为移动轨迹移动滑块,直至滑块的移动距离大于总距离。
例如,第一阶段每次向X方向移动距离为5个像素点,也可以在预设的一个移动范围内随机移动,例如[5,8],则会随机取5、6、7,每取一次则与移动距离累加,比如第一次取5,第二次取7,则移动距离为5+7,一直循环,直到移动距离大于总距离时退出循环。
具体地,第一算法的计算机代码为,int r=RandomUtils.nextInt(5,8),r表示移动距离(X方向的像素点数量),d表示总距离,i=r/d;
当0<i≤0.05时,sleepTime=RandomUtils.nextInt(0,5);
当0.05<i<0.85时,sleepTime=RandomUtils.nextInt(10,50);
当i≥0.85时,sleepTime=RandomUtils.nextInt(100,200)。
可以理解地,刚开始移动滑块时为第一阶段,随着移动距离(r1)的增加速度变慢,通过设置三个移动区间,每个移动区间的等待时间不同,更加逼真地模拟真实的人类移动状态。
可选地,第二移动单元40包括判断子单元、第二设置子单元、第四移动子单元。
判断子单元,用于判断滑块的移动距离是否大于总距离;
第二设置子单元,用于如是,设置第二阶段移动过程中的单次移动距离为第二随机像素点数量。可以理解地,当滑块滑过缺口后,需要模拟人为的回调动作,在回调时,速度较慢。例如,第二阶段每次移动距离为1或2个像素点。
第四移动子单元,用于按第一阶段移动方向的反方向(即X方向的反方向)移动滑块,直至滑块与缺口相契合,其中,设置第二阶段移动过程中单次移动的等待时间大于100毫秒小于200毫秒。
具体地,第二算法的计算机代码为,int r=RandomUtils.nextInt(1,3),r=-r,即取反方向回调,整个回调过程中均设置sleepTime=RandomUtils.nextInt(100,200),直至滑块与缺口相契合。
可选地,第四移动子单元还用于:
按第一阶段移动方向的反方向移动滑块,使得总距离与移动距离的差值为预设距离;如图2所示,移动距离r2。
按第一阶段移动方向移动滑块预设距离,直至滑块与缺口相契合。如图2所示,移动距离r3。
具体算法为:int r=RandomUtils.nextInt(1,3),r=r,即正方向回调,设置sleepTime=RandomUtils.nextInt(100,200),本实施例中为5个像素点。
通过两次回调,使得回调轨迹更加贴合人类状态。
可选地,装置还包括设置单元,用于设置移动轨迹及回调轨迹的纵向随机偏移像素点数量。
具体算法为:
y=RandomUtils.nextInt(0,2)==1?RandomUtils.nextInt(0,2):0-RandomUtils.nextInt(0,2)
可以理解地,增加人为的上下跳动,增加人机验证的干扰。整个过程中通过科学的植入算法位、干扰项、思考时间,增加自动化在移动滑块时的人属性特性,巧妙的迷幻滑块自身的人机行为验证算法,从而增加自动化的可行性、可稳定性。
可选地,装置还包括检测单元、处理单元。
检测单元,用于检测滑块验证是否成功;处理单元,用于如果验证失败,重复步骤S01~S04;处理单元,还用于如果成功,则结束。
可以理解地,当滑块与缺口契合时,滑动验证码就表示验证成功,系统就会允许登录,返回验证成功值,例如我们平常登录12306,就会提示验证成功。如果验证不成功,那么就会重复验证。
在本方案中,计算机通过将模拟人为移动轨迹和回调轨迹,使得更加贴合人滑动滑块的状态,简单准确地进行滑动验证码自动化识别,提高滑块验证的成功率。
本发明实施例提供了一种计算机非易失性存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:
获取滑块验证码原图及待验证图片,其中,待验证图片包括滑块及能够与滑块契合的缺口;识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离;利用预设的第一算法模拟人为移动轨迹移动待验证图片中的滑块,直至滑块的移动距离大于总距离,其中,移动轨迹的速度随移动距离的增大而减小;利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合,其中,回调轨迹的速度小于等于移动轨迹的速度。
可选地,在程序运行时控制存储介质所在设备执行识别滑块验证码原图与待验证图片,得到滑块所需滑动的总距离的步骤,包括:
从第一预设方向依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值;当两个像素点的三原色值的差值绝对值大于第一预设值时,确定像素点为缺口中的像素点;从第一预设方向的反方向依次获取滑块验证码原图及待验证图片中坐标信息相一致的两个像素点的三原色值,并计算两个像素点的三原色值的差值绝对值;当两个像素点的三原色值的差值绝对值大于第二预设值时,确定待验证图片中的像素点为滑块中的像素点;根据确定的缺口中的像素点的坐标信息及滑块中的像素点的坐标信息计算滑块滑动至缺口的总距离。
可选地,在程序运行时控制存储介质所在设备执行利用预设的第一算法模拟人为移动轨迹移动滑块,直至滑块的移动距离大于总距离的步骤,包括:设置第一阶段移动过程中的单次移动距离为第一随机像素点数量;当0<i≤0.05时,i表示移动距离/总距离,设置第一阶段移动过程中的单次移动等待时间小于等于5毫秒,模拟人为移动轨迹移动滑块;当0.05<i<0.85时,设置第一阶段移动过程中的单次移动等待时间大于10毫秒小于50毫秒,模拟人为移动轨迹移动滑块;当i≥0.85时,设置第一阶段移动过程中的单次移动等待时间大于100毫秒小于200毫秒,模拟人为移动轨迹移动滑块,直至滑块的移动距离大于总距离。
可选地,在程序运行时控制存储介质所在设备执行利用预设的第二算法模拟人为回调轨迹移动滑块,直至滑块与缺口相契合的步骤,包括:判断滑块的移动距离是否大于总距离;如是,设置第二阶段移动过程中的单次移动距离为第二随机像素点数量;按第一阶段移动方向的反方向移动滑块,直至滑块与缺口相契合,其中,设置第二阶段移动过程中单次移动的等待时间大于100毫秒小于200毫秒。
可选地,在程序运行时控制存储介质所在设备执行按第一阶段移动方向的反方向回调滑块,直至滑块与缺口相契合的步骤,包括:
按第一阶段移动方向的反方向移动滑块,使得总距离与移动距离的差值为预设距离;按第一阶段移动方向移动滑块预设距离,直至滑块与缺口相契合。
图4是本发明实施例提供的一种计算机设备的示意图。如图4所示,该实施例的计算机设备100包括:处理器101、存储器102以及存储在存储器102中并可在处理器101上运行的计算机程序103,处理器101执行计算机程序103时实现实施例中的基于动态路径的滑块验证方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器101执行时实现实施例中基于动态路径的滑块验证装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器101、存储器102。本领域技术人员可以理解,图4仅仅是计算机设备100的示例,并不构成对计算机设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器101可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以是计算机设备100的内部存储单元,例如计算机设备100的硬盘或内存。存储器102也可以是计算机设备100的外部存储设备,例如计算机设备100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器102还可以既包括计算机设备100的内部存储单元也包括外部存储设备。存储器102用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器102还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于动态路径的滑块验证方法,其特征在于,所述方法包括:
获取滑块验证码原图及待验证图片,其中,所述待验证图片包括滑块及能够与所述滑块契合的缺口;
识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离;
利用预设的第一算法模拟人为移动轨迹移动所述待验证图片中的所述滑块,直至所述滑块的移动距离大于所述总距离,其中,所述移动轨迹的速度随所述移动距离的增大而减小;
利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合,其中,所述回调轨迹的速度小于等于所述移动轨迹的速度。
2.根据权利要求1所述的方法,其特征在于,所述识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离的步骤,包括:
从第一预设方向依次获取所述滑块验证码原图及所述待验证图片中坐标信息相一致的两个像素点的三原色值,并计算所述两个像素点的三原色值的差值绝对值;
当所述两个像素点的三原色值的差值绝对值大于第一预设值时,确定所述待验证图片中的像素点为所述缺口中的像素点;
从所述第一预设方向的反方向依次获取所述滑块验证码原图及所述待验证图片中坐标信息相一致的两个像素点的三原色值,并计算所述两个像素点的三原色值的差值绝对值;
当所述两个像素点的三原色值的差值绝对值大于第二预设值时,确定所述待验证图片中的像素点为所述滑块中的像素点;
根据确定的所述缺口中的像素点的坐标信息及所述滑块中的像素点的坐标信息计算所述滑块滑动至所述缺口的总距离。
3.根据权利要求1所述的方法,其特征在于,所述利用预设的第一算法模拟人为移动轨迹移动所述滑块,直至所述滑块的移动距离大于所述总距离的步骤,包括:
设置第一阶段移动过程中的单次移动距离为第一随机像素点数量;
当0<i≤0.05时,i表示移动距离/总距离,设置第一阶段移动过程中的单次移动等待时间小于等于5毫秒,模拟人为移动轨迹移动所述滑块;
当0.05<i<0.85时,设置第一阶段移动过程中的单次移动等待时间大于10毫秒小于50毫秒,模拟人为移动轨迹移动所述滑块;
当i≥0.85时,设置第一阶段移动过程中的单次移动等待时间大于100毫秒小于200毫秒,模拟人为移动轨迹移动所述滑块,直至所述滑块的移动距离大于所述总距离。
4.根据权利要求1所述的方法,其特征在于,所述利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合的步骤,包括:
判断所述滑块的移动距离是否大于所述总距离;
如是,设置第二阶段移动过程中的单次移动距离为第二随机像素点数量;
按第一阶段移动方向的反方向移动所述滑块,直至所述滑块与所述缺口相契合,其中,设置第二阶段移动过程中单次移动的等待时间大于100毫秒小于200毫秒。
5.根据权利要求4所述的方法,其特征在于,在所述按第一阶段移动方向的反方向回调所述滑块,直至所述滑块与所述缺口相契合的步骤,包括:
按第一阶段移动方向的反方向移动所述滑块,使得所述总距离与所述移动距离的差值为预设距离;
按第一阶段移动方向移动所述滑块预设距离,直至所述滑块与所述缺口相契合。
6.根据权利要求1~5中任意一项所述的方法,其特征在于,在所述利用预设的第一算法模拟人为移动轨迹移动所述滑块之前,所述方法还包括:
设置所述移动轨迹及所述回调轨迹的纵向随机偏移像素点数量。
7.根据权利要求1所述的方法,其特征在于,所述获取滑块验证码原图及待验证图片的步骤,包括:
利用selenium驱动浏览器,以获取滑块验证码原图及待验证图片。
8.一种基于动态路径的滑块验证装置,其特征在于,所述装置包括:
获取单元,用于获取滑块验证码原图及待验证图片,其中,所述待验证图片包括滑块及能够与所述滑块契合的缺口;
识别单元,用于识别所述滑块验证码原图与所述待验证图片,得到所述滑块所需滑动的总距离;
第一移动单元,用于利用预设的第一算法模拟人为移动轨迹移动所述待验证图片中的所述滑块,直至所述滑块的移动距离大于所述总距离,其中,所述移动轨迹的速度随所述移动距离的增大而减小;
第二移动单元,用于利用预设的第二算法模拟人为回调轨迹移动所述滑块,直至所述滑块与所述缺口相契合,其中,所述回调轨迹的速度小于等于所述移动轨迹的速度。
9.一种计算机非易失性存储介质,所述存储介质包括存储的程序,其特征在于,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7任意一项所述的基于动态路径的滑块验证。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述的基于动态路径的滑块验证的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010103992.6A CN111338938A (zh) | 2020-02-20 | 2020-02-20 | 一种基于动态路径的滑块验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010103992.6A CN111338938A (zh) | 2020-02-20 | 2020-02-20 | 一种基于动态路径的滑块验证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338938A true CN111338938A (zh) | 2020-06-26 |
Family
ID=71185411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010103992.6A Pending CN111338938A (zh) | 2020-02-20 | 2020-02-20 | 一种基于动态路径的滑块验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338938A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784246A (zh) * | 2021-01-28 | 2021-05-11 | 武汉悦学帮网络技术有限公司 | 滑块验证码验证方法、装置、设备及存储介质 |
CN113688378A (zh) * | 2021-08-25 | 2021-11-23 | 四川新网银行股份有限公司 | 一种提升滑块验证码安全性的方法 |
CN113806713A (zh) * | 2021-09-01 | 2021-12-17 | 浪潮卓数大数据产业发展有限公司 | 一种通过接码平台和selenium突破点选验证码的方法及系统 |
-
2020
- 2020-02-20 CN CN202010103992.6A patent/CN111338938A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784246A (zh) * | 2021-01-28 | 2021-05-11 | 武汉悦学帮网络技术有限公司 | 滑块验证码验证方法、装置、设备及存储介质 |
CN113688378A (zh) * | 2021-08-25 | 2021-11-23 | 四川新网银行股份有限公司 | 一种提升滑块验证码安全性的方法 |
CN113806713A (zh) * | 2021-09-01 | 2021-12-17 | 浪潮卓数大数据产业发展有限公司 | 一种通过接码平台和selenium突破点选验证码的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338938A (zh) | 一种基于动态路径的滑块验证方法及装置 | |
CN109840477B (zh) | 基于特征变换的受遮挡人脸识别方法及装置 | |
CN112085056B (zh) | 目标检测模型生成方法、装置、设备及存储介质 | |
CN112966742A (zh) | 模型训练方法、目标检测方法、装置和电子设备 | |
CN111310156B (zh) | 一种滑块验证码的自动识别方法及系统 | |
CN111309222B (zh) | 一种滑块验证码的滑块缺口定位及拖动轨迹生成方法 | |
CN112381071A (zh) | 一种视频流中目标的行为分析方法、终端设备及介质 | |
CN113939791A (zh) | 图像标注方法、装置、设备及介质 | |
CN111340801A (zh) | 一种牲畜盘点方法、装置、设备及存储介质 | |
CN111310155A (zh) | 一种用于滑块验证码自动识别的系统架构及实现方法 | |
CN111782068A (zh) | 鼠标轨迹生成的方法、装置和系统以及数据处理的方法 | |
CN115205736A (zh) | 视频数据的识别方法和装置、电子设备和存储介质 | |
CN113608805B (zh) | 掩膜预测方法、图像处理方法、显示方法及设备 | |
US11238620B2 (en) | Implicit structured light decoding method, computer equipment and readable storage medium | |
CN111090849A (zh) | 存储器、验证码实现方法、装置和设备 | |
CN106354516B (zh) | 追踪设备的方法及装置 | |
CN116431468A (zh) | 测试方法、装置、处理设备及存储介质 | |
CN110263782A (zh) | 基于深度学习的卡证检测方法和装置 | |
CN117830305B (zh) | 对象测量方法、装置、设备及介质 | |
CN114356739B (zh) | 车载手机互联系统性能测试方法、装置、设备及存储介质 | |
CN112883988B (zh) | 基于多数据集的特征提取网络的训练及特征提取方法 | |
CN116259072B (zh) | 一种动物识别方法、装置、设备以及存储介质 | |
CN115578434A (zh) | 图像深度估计方法、装置、系统与可读存储介质 | |
CN114494966A (zh) | 数据处理方法及装置、电子设备及计算机可读存储介质 | |
CN116431461A (zh) | 桌面应用测试方法、装置、电子设备、及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |