CN110427746A - 滑块验证码验证方法、装置、存储介质和计算机设备 - Google Patents
滑块验证码验证方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN110427746A CN110427746A CN201910729644.7A CN201910729644A CN110427746A CN 110427746 A CN110427746 A CN 110427746A CN 201910729644 A CN201910729644 A CN 201910729644A CN 110427746 A CN110427746 A CN 110427746A
- Authority
- CN
- China
- Prior art keywords
- sliding
- location information
- identifying code
- image
- sliding block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012795 verification Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 48
- 238000004590 computer program Methods 0.000 claims description 40
- 238000012360 testing method Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 239000012634 fragment Substances 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 7
- 230000002045 lasting effect Effects 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004438 eyesight Effects 0.000 description 3
- 238000000691 measurement method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001062009 Indigofera Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及一种滑动验证码验证方法、装置、计算机可读存储介质和计算机设备,所述方法包括:通过获取滑动验证码所在页面的页面图像;直接对页面图像进行识别,获得滑动按钮的位置信息以及验证区域图像的位置信息;并进一步识别验证区域图像内滑块的位置信息以及滑块缺口的位置信息;而后根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;根据滑动偏移量控制滑动按钮滑动,完成验证,进行滑动验证。上述滑动验证码破解方法通过识别滑动验证码所在页面的页面图像信息来对滑动验证码进行破解,无需通过第三方控件来完成滑动验证码的破解工作,避免了在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
Description
技术领域
本申请涉及自动测试技术领域,特别是涉及一种滑块验证码验证方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着互联网技术的发展,目前很多互联网应用系统会使用字符识别、滑块拖动、图片点选、图片文字点选、智力题目解答等验证码技术来防止机器人程序访问,其中,滑块验证码,以其操作简单、用户体验好、安全性较强等特点,得到广泛采用。但是,在一些场景中,例如自动测试等场景中,需要自动识别并验证验证码。现有的滑块验证码验证方法,一般需要借助第三方工具获取控件元素信息,而后直接通过网页设计的元素控件,从浏览器页面中获取相关信息,比如滑动按钮,验证码区域等,而后进行滑动验证码解锁。
但是对于利用第三方工具获取控件的方法,可能存在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
发明内容
基于此,有必要针对验证码区域受保护,无法获取的技术问题,提供一种通用性强的滑动验证码破解方法、装置、存储介质和计算机设备。
一种滑动验证码验证方法,包括:
获取滑动验证码所在页面的页面图像;
对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据所述验证码区域的位置信息,对所述验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
一种滑动验证码破解装置,所述装置包括:
图像获取模块,用于获取滑动验证码所在页面的页面图像;
第一图像识别模块,用于对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
第二图像识别模块,用于根据所述验证码区域的位置信息,对所述验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
偏移量获取模块,用于根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
验证模块,用于根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取滑动验证码所在页面的页面图像;
对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据所述验证码区域的位置信息,对所述验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取滑动验证码所在页面的页面图像;
对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据所述验证码区域的位置信息,对所述验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
上述滑动验证码验证方法、装置、存储介质和计算机设备,通过获取滑动验证码所在页面的页面图像;直接对页面图像进行识别,获得滑动按钮以及验证区域图像的位置信息;并进一步识别验证区域图像内滑块的位置信息以及滑块缺口的位置信息;而后根据所述滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;根据所述滑动偏移量控制所述滑动按钮滑动,完成验证,进行滑动验证。上述滑动验证码破解方法通过识别滑动验证码所在页面的页面图像信息来对滑动验证码进行破解,无需通过第三方控件来完成滑动验证码的破解工作,避免了在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
附图说明
图1为一个实施例中滑动验证码验证方法的应用环境图;
图2为一个实施例中自动化测试工具的示意图;
图3为一个实施例中滑动验证码验证方法的主要流程示意图;
图4为一个实施例中滑动验证码验证方法的流程示意图;
图5为一个实施例中页面图像的示意图;
图6为一个实施例中验证码区域的示意图;
图7为一个实施例中识别滑动按钮的位置信息与验证码区域的位置信息步骤的流程示意图;
图8为一个实施例中识别滑块的位置信息以及滑块缺口的位置信息步骤的流程示意图;
图9为一个实施例中滑动偏移量的示意图;
图10为一个实施例中确定滑块偏移量步骤的流程示意图;
图11为一个实施例中根据滑动偏移量控制滑动按钮滑动步骤的流程示意图;
图12为一个实施例中滑动验证成功后的滑动验证码的示意图;
图13为一个实施例中滑动验证码验证方法的流程示意图;
图14为一个实施例中滑动验证码验证装置的结构框图;
图15为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中滑动验证码方法的应用环境图。参照图1,该滑动验证码方法应用于自动化测试系统。该自动化测试系统包括终端或服务器110。终端和服务器110通过网络连接。终端具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器110可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端或服务器110配置有OpenCV视觉库,可以对自动化测试过程中包含滑动验证码的页面对应截图,进行图像识别等操作。OpenCV是一个跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。进一步地,本申请的滑动验证码破解方法主要运用于自动化测试的过程中,在自动化测试中,测试工具往往控制一台或多台设备,脱离人工,采用自动操作的方式,执行相同的脚本或者测试用例,但是测试中可能会遇到一些复杂步骤,需要人工进行判断和操作,如图2所示,本技术方案的方法主要通过将滑块验证码验证功能嵌入自动化测试工具,解决测试过程中滑块验证需要人工处理的问题,更好的帮助工具实现真正的自动化测试。
如图3所示,在一个实施例中,提供了一种滑动验证码验证方法。本实施例主要以该方法应用于上述图1中的终端或服务器110来举例说明。参照图3,本申请的滑动验证码验证方法主要包括了获取验证码信息、滑动验证码识别以及滑动验证三个主要步骤,参照图4,该滑动验证码验证方法具体包括如下步骤:
S100,获取滑动验证码所在页面的页面图像。
其中,验证码(CAPTCHA)是“Completely Automated Public Turing test totell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。滑动验证码是验证码中的一种,以其操作简单、用户体验好、安全性较强等特点,得到广泛采用。页面是指包含图像信息的界面,页面图像是指该页面内的图像信息。页面具体可以是浏览器页面或者是程序页面。其中一个实施例中的页面图像如图5所示。
具体地,终端110包含了显示页面信息的屏幕,当终端110屏幕显示的页面上出现滑动验证码时,终端110可以通过截取和保存设备的整个屏幕图像,获取滑动验证码所在页面的页面图像。
S300,对页面图像进行图像识别,获得页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
其中,图像识别是指是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术。图像识别有多种方法,比如,具体可以为模板匹配的图像识别方法、原型匹配的图像识别方法、特征匹配的图像识别方法等。滑动按钮和验证码区域都是滑动验证码的一部分,其中滑动按钮是指滑动验证码中用于滑动的部分,滑动按钮具体可以参见图5中5001所指向的黑色小矩形框。验证码区域是指验证码中验证解答的图像所处的位置,验证码区域具体可以参见图6中的矩形框6001。验证码区域包含了滑块以及缺口,其中滑块与滑动按钮对应,具体可以参照图6中的6002,而滑块与缺口的形状一般相同,具体可以参照图6中的6003,。可以通过滑动该滑动按钮来移动滑块,将滑块移动至缺口位置即可完成滑动验证码的验证。
具体地,可以通过图像识别的方法来对页面图像中的特定位置进行识别,从而在页面图像中提取滑动按钮的位置信息,以及验证码区域的位置信息。在其中一个实施例中,可以在页面图像上建立相应的坐标系,而后通过四维向量(x_min,y_min,x_max,y_max)记录滑动按钮的位置以及验证码区域的位置。其中x_min表示坐标系中滑动按钮或验证码区域的横坐标最小值,y_min表示坐标系中滑动按钮或验证码区域的纵坐标最小值,x_max表示坐标系中滑动按钮或验证码区域的横坐标最大值,y_max表示坐标系中滑动按钮或验证码区域的纵坐标最大值。
如图7所示,在一个实施例中,步骤S300包括:
S320,提取页面图像的第一图像特征.
S340,根据第一图像特征对页面图像进行图像匹配,获得滑动按钮的位置信息以及滑动条的位置信息。
S360,根据滑动条的位置信息确定验证码区域的位置信息。
其中,图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征。比如,图像特征具体可以是指图像的SIFT(Scale-invariant feature transform,尺度不变特征变换)特征。图像匹配是指通过对影像内容、特征、结构、关系、纹理及灰度等的对应关系,相似性和一致性的分析,寻求相似影像目标的方法。滑动条是指滑动按钮可以滑动的区域,该区域一般为条状。
具体地,可以通过提取页面图像的第一图像特征来对页面图像进行识别,在页面图像中匹配获得滑动按钮的位置信息以及滑动条的位置信息。而后通过滑动条的位置信息确定验证码区域的位置信息。通过特征匹配,可以有效提高图像识别过程中的效率。例如,在其中一个实施例中,可以根据滑动条的位置信息,以及验证码区域高度,计算确定验证码区域的位置信息,滑动条区域记为rect1=(x1_min,y1_min,x1_max,y1_max),其中x1_min表示坐标系中滑动条的横坐标最小值,y1_min表示坐标系中滑动条的纵坐标最小值,x1_max表示坐标系中滑动条的横坐标最大值,y1_max表示坐标系中滑动条的纵坐标最大值,验证码区域高度记为height,默认值为150像素,则验证码区域计算结果为:
rect2=(x1_min,y1_min-height,x1_max,y1_max-height)
在其中一个实施例中,第一图像特征具体可以为SIFT特征。SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在数据量庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。提取页面图像的第一图像特征具体为提取页面图像中的SIFT特征,而后通过提取的SIFT特征与预设的滑动按钮以及滑动条对应的SIFT特征进行对比,计算两者匹配的特征点对,基于两者匹配的特征点对来对页面图像上的各位置进行过滤,以此获得滑动按钮的位置信息以及滑动条的位置信息。
在另一个实施例中,步骤S300包括:
获取预设匹配模板图像,预设匹配模板图像包括滑动按钮模板图像以及滑动条模板图像。
遍历页面图像中各像素位置与预设匹配模板图像的匹配值。
根据与滑动按钮模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中的滑动按钮的位置信息,根据与滑动条模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中滑动条的位置信息。
模板匹配就是指在整个图像区域发现与给定子图像匹配的小块区域。其中,预设匹配模板图像就是给定子图像,用于对页面图像进行模板识别,具体包括滑动按钮模板图像以及滑动条模板图像。匹配值用于体现预设匹配模板图像与页面图像的匹配程度。像素位置是指通过预设匹配模板图像在遍历页面图像中可以设置的各个位置。预设匹配阈值是判断匹配值是否符合匹配要求的度量值。匹配阈值可以根据具体的匹配度量方法设置。
具体地,还可以通过模板匹配的方法来对滑动按钮的位置以及验证码区域的位置进行识别,在其中一个实施例中,可以通过OpenCV来辅助进行模板识别。终端可以先获取滑动按钮模板图像以及滑动条模板图像,而后对页面图像进行模板识别,通过OpenCV的算法获取匹配度,并基于匹配度与预设匹配阈值从模板图像中获得滑动按钮的位置信息以及验证码区域的位置信息。其中,可以通过OpenCV中提供了6种匹配度量方法中任一种来获取匹配度,这六种方法具体包括了平方差匹配法、归一化平方差匹配法、相关匹配法、归一化相关匹配法、系数匹配法以及化相关系数匹配法,对于平方差匹配法与归一化平方差匹配法,匹配度越小,则匹配结果越好,而其余的方法则是匹配度越大匹配效果越好。随着从简单测量方法(平方差)到更复杂的测量方法(相关系数法),获得越来越准确的匹配。然而同时也会以越来越大的计算量为代价。匹配算法的种类可以具体根据自动化测试过程中所使用的滑动验证码选定。通过模板识别也能有效从页面图像中识别滑动按钮与验证码区域的位置。
S500,根据验证码区域的位置信息,对验证码区域进行图像识别,获得滑块的位置信息以及滑块缺口的位置信息。
其中,滑块是指滑动验证码中的一部分,与滑动按钮对应,而滑块与滑块缺口的形状一般相同,可以通过滑动该滑动按钮来移动滑块,将滑块移动至缺口位置即可完成滑动验证码的验证。
具体地,可以基于的图像的亮度和轮廓特点等特征来对验证码区域内的滑块以及滑块缺口进行识别,来获得滑块的位置信息以及滑块缺口的位置信息。
如图8所示,在一个实施例中,步骤S500包括:
S520,将验证码区域对应的RGB(red green blue,红绿蓝)区域图像,转换为HSV(Hue Saturation Value,色调饱和度明度)颜色空间图像。
S540,确定HSV颜色空间图像中V通道图像的亮度均值。
S560,根据亮度均值确定滑动验证码的类型。
S580,基于滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息。
其中,RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。HSV是根据颜色的直观特性由创建的一种颜色空间,也称六角锥体模型。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。明度又称为亮度,而亮度均值是指HSV颜色空间图像中各个像素点的亮度的均值。滑动验证码的类型具体括了高亮型与非高亮型两种,可以根据滑动验证码对应的V通道对当前滑动验证码的类别进行识别,而后根据滑动验证码的种类来选用相应的方法进行识别。
截取的页面图像为RGB标准,可以将其中的验证码区域转换为HSV颜色空间图像。HSV颜色空间图像中的V通道图像可以准确地体现验证码区域的亮度特点。进而判断滑动验证码的类型,而后根据滑动验证码的种类来选用相应的方法进行识别。在其中一个实施例中,可以通过OpenCV来将RGB区域图像,转换为HSV颜色空间图像。通过识别滑块验证码类型,而后基于滑块验证码的类型来对滑块以及滑块缺口进行判断,可以有效提高滑块与滑块缺口识别的准确性,进而提高验证成功率与验证效率。
在一个实施例中,S560包括:在HSV颜色空间图像中V通道图像内存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为高亮型滑动验证码;在HSV颜色空间图像中V通道图像内不存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为非高亮型滑动验证码。
具体地,当滑块验证码为高亮型滑块验证码时,滑块区域与滑块缺口区域内像素点相对于验证码区域内的其他像素点的亮度更高,且大于亮度均值。而当滑块验证码为非高亮型滑块验证码时,验证码区域内亮度分布相较高亮型滑块验证码更为均匀,不存在某个连续区域像素点亮度均会大于亮度均值。可以通过HSV颜色空间图像中V通道图像内是否存在连续的高亮区域来准确判断滑块验证码的类型。提高滑动验证码的验证准确性。
在一个实施例中,在滑动验证码的类型为高亮型滑动验证码时,S580包括:对HSV颜色空间图像中V通道图像进行二值化处理,获得二值化处理后图像;提取二值化处理后图像的二值化轮廓;确定二值化图轮廓对应的轮廓中心;根据滑动按钮的位置信息,确定轮廓中心对应的滑块的位置信息以及滑块缺口的位置信息。
二值化处理具体是指图像二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。二值化轮廓是指二值化处理后呈现的轮廓。
具体地,可以通过OpenCV中的相关空间实现对生成的述HSV颜色空间图像中的V通道图像进行二值化处理,来获得二值化处理后图像。而后提取该图像的轮廓,该轮廓即为滑块区域以及滑块缺口区域的轮廓。而滑块的位置一般会与滑动按钮的位置对应,即如果在滑块验证码为一个顶点,滑动条为X轴或者Y轴所在的直角坐标系中,滑块的横坐标或者纵坐标之一会与滑动按钮相同,可以据此区分滑块区域以及滑块缺口区域。此外,采用不一定需要通过亮度均值来进行二值化,比如计算亮度最大值,然后允许一些误差,即T=max(v)-20或者使用大约亮度的1/2(固定值120)也可以,不过使用亮度均值可以较获得较好的兼容性。
在一个实施例中,在滑动验证码的
类型为非高亮型滑动验证码时,S580包括:对RGB区域图像进行灰度化处理,获得灰度化处理后图像;获取灰度化处理后图像的梯度信息;根据梯度信息,提取灰度化处理后图像的图像边缘特征;根据滑动按钮的位置信息,识别图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
其中,灰度化处理是把含有亮度和色彩的彩色图像变化成灰度图像的过程。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶,而用灰度表示的图像称作灰度图。灰度化是指在RGB模型中,让像素点矩阵中的每一个像素点都满足R=G=B的关系,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值,灰度范围为0-255。一般可以分量法、最大值法、平均值法以及加权平均法四种方法对彩色图像进行灰度化。梯度计算则是求取灰度处理后图像中水平方向或者垂直方向的,相邻两个像素之间的差值。由于滑块区域和缺口区域有明显的边缘特征,可以提取梯度变化最强的边缘来确定滑块的位置与滑块缺口的位置。
具体地,可以通过OpenCV对RGB区域图像进行灰度化处理,而后对灰度化处理后图像进行梯度计算,获得灰度化处理后图像的梯度,并通过使用OpenCV中的canny算子就可以来提取灰度化处理后图像的图像边缘特征,通过提取梯度变化最强的边缘来确定滑块的位置与滑块缺口的位置。而后根据滑动按钮的位置信息,区分图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
S700,根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量。
滑块偏移量是指滑块移动的距离,即滑块与滑块缺口之间的像素距离,可以通过将滑块在滑动条中移动滑块偏移量对应的距离,来进行滑动验证。滑块偏移量具体可以参见图9中的offset。
具体地,可以通过建立坐标系,而后通过坐标系中滑块中心的位置信息以及滑块缺口中心的位置信息,来判断滑块需要滑动的距离。
如图10所示,在一个实施例中,S700包括:
S720,根据滑块的位置信息,确定滑块的中心位置横坐标。
S740,根据滑块缺口的位置信息,确定滑块缺口的中心点横坐标。
S760,根据滑块的中心点横坐标以及滑块缺口的中心点横坐标,获取滑块偏移量。
其中,滑块中心位置是指滑块中心点的位置,在其中一个实施例中,可以通过滑块对应的最小外接矩形框来对滑块中心位置进行计算,最小外接矩形框对应的中心即为滑块的中心。滑块缺口也是一样,可以通过建立滑块区域与滑块缺口区域的最小外接矩形框来获取这两者的中心位置。
具体地,建立的坐标系中横坐标的方向与滑块滑动方向一致。可以通过建立滑块区域与滑块缺口区域的最小外接矩形框来获取这两者的中心位置,在建立的坐标系中分别记为p1=(x1,y1),p2=(x2,y2),其中,x1为滑块中心点横坐标,y1滑块中心点纵坐标,x2为滑块缺口中心点横坐标,y2为滑块缺口中心点纵坐标。而此时的滑块偏移量offset则为offset=x2-x1。
S900,根据滑动偏移量控制滑动按钮滑动,进行滑动验证。
具体地,可以通过控制原页面上的滑动按钮按照计算获得的滑动偏移量进行移动,使得与滑动按钮对应的滑块可以移动至滑块缺口对应位置,进行滑动验证。
如图11所示,在其中一个实施例中,S900包括:
S920,将滑动偏移量拆分为多个分段偏移量。
S940,根据多个分段偏移量,分段持续控制滑动按钮滑动,进行滑动验证。
在其中一个实施例中,S940包括:
根据多个分段偏移量,分段持续控制滑动按钮滑动。
当滑动按钮的总滑动距离与滑动偏移量相等时,停留预设停滞时间,进行滑动验证。
由于滑动操作受到不同浏览器或者系统的影响,滑动操作的实际表现会产生差异,如果采用直接滑动,一步到位的方式,可能会存在滑动过快,滑动按钮并没有同步跟着移动,实际移动距离不正确,或者验证交互来不及响应等问题,导致最终验证失败。此时可以通过分段滑动来将滑块一段段进行移动,防止滑块滑动过快导致验证失败。在其中一个具体实施例中,可以滑块偏移量划分为10小段,每次控制滑动按钮滑动一小段,操作不释放,持续连续滑动,完成整个操作,这样可以控制滑动速度,保证滑动的稳定,滑动到最大偏移的缺口位置时,不立刻释放操作,停留一个预设停滞时间,比如停留5秒,给予验证交互充足的时间,避免释放太快,来不及响应,完成验证。通过多段滑动,可以提高滑动解锁的成功率。
在其中一个实施例中,S900之后还包括:
获取验证完成后的滑动按钮的位置信息。
当基于滑动按钮的位置信息,确定滑动按钮返回初始位置时,调整滑动偏移量,并返回根据滑动偏移量控制滑动按钮滑动,进行滑动验证的步骤。
当基于滑动按钮的位置信息,确定滑动按钮未返回初始位置时,判定滑动验证通过。
具体地,由于滑动验证对灵敏度、精确度的要求不同,加上响应卡顿等问题,可能在某些情况下因为几个像素的差距导致首次验证失败,此时可以重试机制,提高滑动验证的通过率。由于通常验证完成后,对于验证成功与验证失败的情况,滑动按钮的位置并不相同,可以通过滑动按钮的位置判断判断验证成功与否,当滑动验证失败时,即滑动按钮返回至初始位置时,可以通过微调滑动偏移量,来再次进行滑动验证,保证重试过程的滑动验证通过性。当验证成功时,如图12所示,滑动按钮不会返回初始位置。
在其中一个实施例中,调整滑动偏移量包括:查找滑动偏移量对应的历史调整记录;当历史调整记录不存在时,根据预设初始调整量调整滑动偏移量;当历史调整记录存在时,根据历史调整记录中最后一条调整记录的调整量设置当前调整量,根据当前调整量调整滑动偏移量。
其中历史调整记录用于记录历史滑动调整量。具体的,可以基于上次验证失败后的滑动调整量来确定当前的滑动调整量,通过不断调整滑动调整量保证滑动验证的成功率。在一个实施例中,滑动偏移量的微调方法为重试初始滑块偏移量减10个像素,而之后的滑动偏移量则是在上一次的基础上增加5个像素,即偏移量微调的范围为-10~10,偏移单位为5像素。
上述滑动验证码验证方法,通过获取滑动验证码所在页面的页面图像;直接对页面图像进行识别,获得滑动按钮的位置信息以及验证区域图像的位置信息;并进一步识别验证区域图像内滑块的位置信息以及滑块缺口的位置信息;而后根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;根据滑动偏移量控制滑动按钮滑动,完成验证,进行滑动验证。上述滑动验证码破解方法通过识别滑动验证码所在页面的页面图像信息来对滑动验证码进行破解,无需通过第三方控件来完成滑动验证码的破解工作,避免了在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
图13为一个实施例中滑动验证码验证方法的流程示意图。应该理解的是,虽然图13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图13中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图14所示,提供一种滑动验证码验证装置,装置包括图像获取模块100、第一图像识别模块300、第二图像识别模块500、偏移量获取模块700以及验证模块900:
图像获取模块100,用于获取滑动验证码所在页面的页面图像;
第一图像识别模块300,用于对页面图像进行图像识别,获得页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
第二图像识别模块500,用于根据验证码区域的位置信息,对验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
偏移量获取模块700,用于根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;
验证模块900,用于根据滑动偏移量控制滑动按钮滑动,进行滑动验证。
上述滑动验证码验证装置,通过获取滑动验证码所在页面的页面图像;直接对页面图像进行识别,获得滑动按钮的位置信息以及验证区域图像的位置信息;并进一步识别验证区域图像内滑块的位置信息以及滑块缺口的位置信息;而后根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;根据滑动偏移量控制滑动按钮滑动,完成验证,进行滑动验证。上述滑动验证码破解方法通过识别滑动验证码所在页面的页面图像信息来对滑动验证码进行破解,无需通过第三方控件来完成滑动验证码的破解工作,避免了在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
在一实施例中,第一图像识别模块300具体还用于提取页面图像的第一图像特征;根据第一图像特征对页面图像进行图像匹配,获得滑动按钮的位置信息以及滑动条的位置信息;根据滑动条的位置信息确定验证码区域的位置信息。进一步地,第一图像特征为SIFT特征。根据滑动条的位置信息确定验证码区域的位置信息包括根据滑动条的位置信息,以及验证码区域高度,获取验证码区域的位置信息。
在另一实施例中,第一图像识别模块300具体还用于获取预设匹配模板图像,预设匹配模板图像包括滑动按钮模板图像以及滑动条模板图像,遍历页面图像中各像素位置与预设匹配模板图像的匹配值,根据与滑动按钮模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中的滑动按钮的位置信息,根据与滑动条模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中滑动条的位置信息。
在一实施例中,第二图像识别模块500具体用于将验证码区域对应的RGB区域图像,转换为HSV颜色空间图像,确定HSV颜色空间图像的亮度均值,根据亮度均值确定滑动验证码的类型,基于滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息。进一步地,根据亮度均值确定滑动验证码的类型包括,在HSV颜色空间图像中V通道图像内存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为高亮型滑动验证码,在HSV颜色空间图像中V通道图像内不存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为非高亮型滑动验证码。
具体的,在滑动验证码的类型为高亮型滑动验证码时,第二图像识别模块500具体用于对HSV颜色空间图像中V通道图像进行二值化处理,获得二值化处理后图像,提取二值化处理后图像的二值化轮廓,确定二值化图轮廓对应的轮廓中心,根据滑动按钮的位置信息,确定轮廓中心对应的滑块的位置信息以及滑块缺口的位置信息。在滑动验证码的类型为非高亮型滑动验证码时,第二图像识别模块500具体用于对RGB区域图像进行灰度化处理,获得灰度化处理后图像,获取灰度化处理后图像的梯度信息,根据梯度信息,提取灰度化处理后图像的图像边缘特征,根据滑动按钮的位置信息,识别图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,偏移量获取模块700具体用于根据滑块的位置信息,确定滑块的中心位置横坐标,根据滑块缺口的位置信息,确定滑块缺口的中心点横坐标,根据滑块的中心点横坐标以及滑块缺口的中心点横坐标,获取滑块偏移量。
在一个实施例中,验证模块900具体用于将滑动偏移量拆分为多个分段偏移量,根据多个分段偏移量,分段持续控制滑动按钮滑动,进行滑动验证。更具体地,验证模块900还用于根据多个分段偏移量,分段持续控制滑动按钮滑动,当滑动按钮的总滑动距离与滑动偏移量相等时,停留预设停滞时间,进行滑动验证。
在一个实施例中,滑动验证码验证装置还包括结果验证模块,用于获取验证完成后的滑动按钮的位置信息,当基于滑动按钮的位置信息,确定滑动按钮返回初始位置时,调整滑动偏移量,并返回验证模块执行根据滑动偏移量控制滑动按钮滑动,进行滑动验证的步骤,当基于滑动按钮的位置信息,确定滑动按钮未返回初始位置时,判定滑动验证通过。更具体地,调整滑动偏移量,包括:查找滑动偏移量对应的历史调整记录,当历史调整记录不存在时,根据预设初始调整量调整滑动偏移量,当历史调整记录存在时,根据历史调整记录中最后一条调整记录的调整量设置当前调整量,根据当前调整量调整滑动偏移量。
上述滑动验证码验证装置,通过获取滑动验证码所在页面的页面图像;直接对页面图像进行识别,获得滑动按钮的位置信息以及验证区域图像的位置信息;并进一步识别验证区域图像内滑块的位置信息以及滑块缺口的位置信息;而后根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;根据滑动偏移量控制滑动按钮滑动,完成验证,进行滑动验证。上述滑动验证码破解方法通过识别滑动验证码所在页面的页面图像信息来对滑动验证码进行破解,无需通过第三方控件来完成滑动验证码的破解工作,避免了在验证码区域受保护,无法从浏览器页面内获取相关信息的问题。
图15示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端或服务器110。如图15所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现滑动验证码验证方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行滑动验证码验证方方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的滑动验证码验证装置可以实现为一种计算机程序的形式,计算机程序可在如图15所示的计算机设备上运行。计算机设备的存储器中可存储组成该滑动验证码验证装置的各个程序模块,比如,图15所示的图像获取模块100、第一图像识别模块300、第二图像识别模块500、偏移量获取模块700和验证模块900。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的滑动验证码验证方法中的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时还实现以下步骤:
获取滑动验证码所在页面的页面图像;
对页面图像进行图像识别,获得页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据验证码区域的位置信息,对验证码区域进行图像识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;
根据滑动偏移量控制滑动按钮滑动,进行滑动验证。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
提取页面图像的第一图像特征;
根据第一图像特征对页面图像进行图像匹配,获得滑动按钮的位置信息以及滑动条的位置信息;
根据滑动条的位置信息确定验证码区域的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
根据滑动条的位置信息,以及验证码区域高度,获取验证码区域的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
获取预设匹配模板图像,预设匹配模板图像包括滑动按钮模板图像以及滑动条模板图像;
遍历页面图像中各像素位置与预设匹配模板图像的匹配值;
根据与滑动按钮模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中的滑动按钮的位置信息,根据与滑动条模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中滑动条的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
将验证码区域对应的RGB区域图像,转换为HSV颜色空间图像;
确定HSV颜色空间图像中V通道图像的亮度均值;
根据亮度均值确定滑动验证码的类型;
基于滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
在HSV颜色空间图像中V通道图像内存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为高亮型滑动验证码;
在HSV颜色空间图像中V通道图像内不存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为非高亮型滑动验证码。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
对HSV颜色空间图像中V通道图像进行二值化处理,获得二值化处理后图像;
提取二值化处理后图像的二值化轮廓;
确定二值化图轮廓对应的轮廓中心;
根据滑动按钮的位置信息,确定轮廓中心对应的滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
对RGB区域图像进行灰度化处理,获得灰度化处理后图像;
获取灰度化处理后图像的梯度信息;
根据梯度信息,提取灰度化处理后图像的图像边缘特征;
根据滑动按钮的位置信息,识别图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
根据滑块的位置信息,确定滑块的中心位置横坐标;
根据滑块缺口的位置信息,确定滑块缺口的中心点横坐标;
根据滑块的中心点横坐标以及滑块缺口的中心点横坐标,获取滑块偏移量。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
将滑动偏移量拆分为多个分段偏移量;
根据多个分段偏移量,分段持续控制滑动按钮滑动,进行滑动验证。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
根据多个分段偏移量,分段持续控制滑动按钮滑动;
当滑动按钮的总滑动距离与滑动偏移量相等时,停留预设停滞时间,进行滑动验证。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
获取验证完成后的滑动按钮的位置信息;
当基于滑动按钮的位置信息,确定滑动按钮返回初始位置时,调整滑动偏移量,并返回根据滑动偏移量控制滑动按钮滑动,进行滑动验证的步骤;
当基于滑动按钮的位置信息,确定滑动按钮未返回初始位置时,判定滑动验证通过。
在一个实施例中,该处理器执行计算机程序时还实现以下步骤:
查找滑动偏移量对应的历史调整记录;
当历史调整记录不存在时,根据预设初始调整量调整滑动偏移量;
当历史调整记录存在时,根据历史调整记录中最后一条调整记录的调整量设置当前调整量,根据当前调整量调整滑动偏移量。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取滑动验证码所在页面的页面图像;
对页面图像进行图像识别,获得页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据验证码区域的位置信息,对验证码区域进行图像识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据滑块的位置信息以及滑块缺口的位置信息确定滑块偏移量;
根据滑动偏移量控制滑动按钮滑动,进行滑动验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
提取页面图像的第一图像特征;
根据第一图像特征对页面图像进行图像匹配,获得滑动按钮的位置信息以及滑动条的位置信息;
根据滑动条的位置信息确定验证码区域的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据滑动条的位置信息,以及验证码区域高度,获取验证码区域的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取预设匹配模板图像,预设匹配模板图像包括滑动按钮模板图像以及滑动条模板图像;
遍历页面图像中各像素位置与预设匹配模板图像的匹配值;
根据与滑动按钮模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中的滑动按钮的位置信息,根据与滑动条模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中滑动条的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将验证码区域对应的RGB区域图像,转换为HSV颜色空间图像;
确定HSV颜色空间图像中V通道图像图像的亮度均值;
根据亮度均值确定滑动验证码的类型;
基于滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在HSV颜色空间图像中V通道图像内存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为高亮型滑动验证码;
在HSV颜色空间图像中V通道图像内不存在亮度值均高于亮度均值的连续区域时,确定滑动验证码的类型为非高亮型滑动验证码。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对HSV颜色空间图像中V通道图像进行二值化处理,获得二值化处理后图像;
提取二值化处理后图像的二值化轮廓;
确定二值化图轮廓对应的轮廓中心;
根据滑动按钮的位置信息,确定轮廓中心对应的滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对RGB区域图像进行灰度化处理,获得灰度化处理后图像;
获取灰度化处理后图像的梯度信息;
根据梯度信息,提取灰度化处理后图像的图像边缘特征;
根据滑动按钮的位置信息,识别图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据滑块的位置信息,确定滑块的中心位置横坐标;
根据滑块缺口的位置信息,确定滑块缺口的中心点横坐标;
根据滑块的中心点横坐标以及滑块缺口的中心点横坐标,获取滑块偏移量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将滑动偏移量拆分为多个分段偏移量;
根据多个分段偏移量,分段持续控制滑动按钮滑动,进行滑动验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据多个分段偏移量,分段持续控制滑动按钮滑动;
当滑动按钮的总滑动距离与滑动偏移量相等时,停留预设停滞时间,进行滑动验证。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取验证完成后的滑动按钮的位置信息;
当基于滑动按钮的位置信息,确定滑动按钮返回初始位置时,调整滑动偏移量,并返回根据滑动偏移量控制滑动按钮滑动,进行滑动验证的步骤;
当基于滑动按钮的位置信息,确定滑动按钮未返回初始位置时,判定滑动验证通过。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
查找滑动偏移量对应的历史调整记录;
当历史调整记录不存在时,根据预设初始调整量调整滑动偏移量;
当历史调整记录存在时,根据历史调整记录中最后一条调整记录的调整量设置当前调整量,根据当前调整量调整滑动偏移量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种滑动验证码验证方法,包括:
获取滑动验证码所在页面的页面图像;
对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
根据所述验证码区域的位置信息,对所述验证码区域进行图像识别,获得滑块的位置信息以及滑块缺口的位置信息;
根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
2.根据权利要求1所述的方法,其特征在于,所述对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息包括:
提取所述页面图像的第一图像特征;
根据所述第一图像特征对所述页面图像进行图像匹配,获得滑动按钮的位置信息以及滑动条的位置信息;
根据所述滑动条的位置信息确定验证码区域的位置信息。
3.根据权利要求1所述的方法,其特征在于,所述对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息,包括:
获取预设匹配模板图像,所述预设匹配模板图像包括滑动按钮模板图像以及滑动条模板图像;
遍历所述页面图像中各像素位置与所述预设匹配模板图像的匹配值;
根据与所述滑动按钮模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中的滑动按钮的位置信息,根据与所述滑动条模板图像的匹配值满足预设匹配阈值的像素位置,获得页面图像中滑动条的位置信息。
4.根据权利要求1所述的方法,其特征在于,根据所述验证码区域的位置信息,对所述验证码区域进行图像识别,获得滑块的位置信息以及滑块缺口的位置信息,包括:
将所述验证码区域对应的RGB区域图像,转换为HSV颜色空间图像;
确定所述HSV颜色空间图像中V通道图像的亮度均值;
根据所述亮度均值确定所述滑动验证码的类型;
基于所述滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述亮度均值确定所述滑动验证码的类型包括:
在所述HSV颜色空间图像中V通道图像内存在亮度值均高于所述亮度均值的连续区域时,确定所述滑动验证码的类型为高亮型滑动验证码;
在所述HSV颜色空间图像中V通道图像内不存在亮度值均高于所述亮度均值的连续区域时,确定所述滑动验证码的类型为非高亮型滑动验证码。
6.根据权利要求5所述的方法,其特征在于,所述滑动验证码的类型为高亮型滑动验证码时,基于所述滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息包括:
对所述HSV颜色空间图像中V通道图像进行二值化处理,获得二值化处理后图像;
提取所述二值化处理后图像的二值化轮廓;
确定所述二值化图轮廓对应的轮廓中心;
根据所述滑动按钮的位置信息,确定所述轮廓中心对应的滑块的位置信息以及滑块缺口的位置信息。
7.根据权利要求5所述的方法,其特征在于,在所述滑动验证码的类型为非高亮型滑动验证码时,基于所述滑动验证码的类型,识别滑块的位置信息以及滑块缺口的位置信息,包括:
对所述RGB区域图像进行灰度化处理,获得灰度化处理后图像;
获取所述灰度化处理后图像的梯度信息;
根据所述梯度信息,提取所述灰度化处理后图像的图像边缘特征;
根据所述滑动按钮的位置信息,识别所述图像边缘特征对应的滑块的位置信息以及滑块缺口的位置信息。
8.根据权利要求1所述的方法,其特征在于,所述根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量,包括:
根据所述滑块的位置信息,确定所述滑块的中心位置横坐标;
根据所述滑块缺口的位置信息,确定所述滑块缺口的中心点横坐标;
根据所述滑块的中心点横坐标以及所述滑块缺口的中心点横坐标,获取滑块偏移量。
9.根据权利要求1所述的方法,其特征在于,所述根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证,包括:
将所述滑动偏移量拆分为多个分段偏移量;
根据所述多个分段偏移量,分段持续控制所述滑动按钮滑动,进行滑动验证。
10.根据权利要求9所述的方法,其特征在于,根据所述多个分段偏移量,分段持续控制所述滑动按钮滑动,进行滑动验证,包括:
根据所述多个分段偏移量,分段持续控制所述滑动按钮滑动;
当所述滑动按钮的总滑动距离与所述滑动偏移量相等时,停留预设停滞时间,进行滑动验证。
11.根据权利要求1所述的方法,其特征在于,所述根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证之后,还包括:
获取验证完成后的所述滑动按钮的位置信息;
当基于所述滑动按钮的位置信息,确定所述滑动按钮返回初始位置时,调整所述滑动偏移量,并返回根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证的步骤;
当基于所述滑动按钮的位置信息,确定所述滑动按钮未返回初始位置时,判定滑动验证通过。
12.根据权利要求11中所述的方法,其特征在于,所述调整所述滑动偏移量,包括:
查找滑动偏移量对应的历史调整记录;
当所述历史调整记录不存在时,根据预设初始调整量调整所述滑动偏移量;
当所述历史调整记录存在时,根据所述历史调整记录中最后一条调整记录的调整量设置当前调整量,根据所述当前调整量调整所述滑动偏移量。
13.一种滑动验证码验证装置,其特征在于,所述装置包括:
图像获取模块,用于获取滑动验证码所在页面的页面图像;
第一图像识别模块,用于对所述页面图像进行图像识别,获得所述页面图像中的滑动按钮的位置信息,以及验证码区域的位置信息;
第二图像识别模块,用于根据所述验证码区域的位置信息,对所述验证码区域进行识别,获得滑块的位置信息以及滑块缺口的位置信息;
偏移量获取模块,用于根据所述滑块的位置信息以及所述滑块缺口的位置信息确定滑块偏移量;
验证模块,用于根据所述滑动偏移量控制所述滑动按钮滑动,进行滑动验证。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910729644.7A CN110427746A (zh) | 2019-08-08 | 2019-08-08 | 滑块验证码验证方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910729644.7A CN110427746A (zh) | 2019-08-08 | 2019-08-08 | 滑块验证码验证方法、装置、存储介质和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110427746A true CN110427746A (zh) | 2019-11-08 |
Family
ID=68415054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910729644.7A Pending CN110427746A (zh) | 2019-08-08 | 2019-08-08 | 滑块验证码验证方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427746A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062022A (zh) * | 2019-11-15 | 2020-04-24 | 北京三快在线科技有限公司 | 基于扰动视觉反馈的滑块验证方法、装置、电子设备 |
CN111309222A (zh) * | 2019-11-28 | 2020-06-19 | 苏宁金融科技(南京)有限公司 | 一种滑块验证码的滑块缺口定位及拖动轨迹生成方法 |
CN111428228A (zh) * | 2020-02-28 | 2020-07-17 | 平安科技(深圳)有限公司 | 极验滑动验证码的破解方法、装置、设备及存储介质 |
CN111681280A (zh) * | 2020-06-03 | 2020-09-18 | 中国建设银行股份有限公司 | 滑动验证码缺口定位方法及装置 |
CN112784246A (zh) * | 2021-01-28 | 2021-05-11 | 武汉悦学帮网络技术有限公司 | 滑块验证码验证方法、装置、设备及存储介质 |
CN113254912A (zh) * | 2021-05-26 | 2021-08-13 | 多益网络有限公司 | 滑动验证方法、装置、存储介质及计算机设备 |
CN113591062A (zh) * | 2020-05-01 | 2021-11-02 | 易鑫 | 一种滑动拼图类验证码识别方法 |
CN116821885A (zh) * | 2023-07-19 | 2023-09-29 | 企查查科技股份有限公司 | 数据采集方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280338A (zh) * | 2018-01-12 | 2018-07-13 | 上海大学 | 一种滑动验证码的破解方法 |
CN108985041A (zh) * | 2018-05-17 | 2018-12-11 | 厦门二五八网络科技集团股份有限公司 | 一种基于滑动验证的验证码识别输入方法及系统 |
CN109977650A (zh) * | 2019-02-27 | 2019-07-05 | 深圳点猫科技有限公司 | 一种基于浏览器自动完成滑块验证的方法以及电子设备 |
CN110084135A (zh) * | 2019-04-03 | 2019-08-02 | 平安科技(深圳)有限公司 | 人脸识别方法、装置、计算机设备及存储介质 |
-
2019
- 2019-08-08 CN CN201910729644.7A patent/CN110427746A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280338A (zh) * | 2018-01-12 | 2018-07-13 | 上海大学 | 一种滑动验证码的破解方法 |
CN108985041A (zh) * | 2018-05-17 | 2018-12-11 | 厦门二五八网络科技集团股份有限公司 | 一种基于滑动验证的验证码识别输入方法及系统 |
CN109977650A (zh) * | 2019-02-27 | 2019-07-05 | 深圳点猫科技有限公司 | 一种基于浏览器自动完成滑块验证的方法以及电子设备 |
CN110084135A (zh) * | 2019-04-03 | 2019-08-02 | 平安科技(深圳)有限公司 | 人脸识别方法、装置、计算机设备及存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062022A (zh) * | 2019-11-15 | 2020-04-24 | 北京三快在线科技有限公司 | 基于扰动视觉反馈的滑块验证方法、装置、电子设备 |
CN111062022B (zh) * | 2019-11-15 | 2022-05-06 | 北京三快在线科技有限公司 | 基于扰动视觉反馈的滑块验证方法、装置、电子设备 |
CN111309222A (zh) * | 2019-11-28 | 2020-06-19 | 苏宁金融科技(南京)有限公司 | 一种滑块验证码的滑块缺口定位及拖动轨迹生成方法 |
CN111309222B (zh) * | 2019-11-28 | 2021-05-04 | 苏宁金融科技(南京)有限公司 | 一种滑块验证码的滑块缺口定位及拖动轨迹生成方法 |
CN111428228A (zh) * | 2020-02-28 | 2020-07-17 | 平安科技(深圳)有限公司 | 极验滑动验证码的破解方法、装置、设备及存储介质 |
CN113591062A (zh) * | 2020-05-01 | 2021-11-02 | 易鑫 | 一种滑动拼图类验证码识别方法 |
CN111681280A (zh) * | 2020-06-03 | 2020-09-18 | 中国建设银行股份有限公司 | 滑动验证码缺口定位方法及装置 |
CN112784246A (zh) * | 2021-01-28 | 2021-05-11 | 武汉悦学帮网络技术有限公司 | 滑块验证码验证方法、装置、设备及存储介质 |
CN113254912A (zh) * | 2021-05-26 | 2021-08-13 | 多益网络有限公司 | 滑动验证方法、装置、存储介质及计算机设备 |
CN116821885A (zh) * | 2023-07-19 | 2023-09-29 | 企查查科技股份有限公司 | 数据采集方法、装置、计算机设备和存储介质 |
CN116821885B (zh) * | 2023-07-19 | 2024-02-20 | 企查查科技股份有限公司 | 数据采集方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427746A (zh) | 滑块验证码验证方法、装置、存储介质和计算机设备 | |
CN111028213B (zh) | 图像缺陷检测方法、装置、电子设备及存储介质 | |
US11681418B2 (en) | Multi-sample whole slide image processing in digital pathology via multi-resolution registration and machine learning | |
CN110110799B (zh) | 细胞分类方法、装置、计算机设备和存储介质 | |
CN105450411B (zh) | 利用卡片特征进行身份验证的方法、装置及系统 | |
WO2016062159A1 (zh) | 图像匹配方法及手机应用测试平台 | |
CN109934847B (zh) | 弱纹理三维物体姿态估计的方法和装置 | |
CN110674712A (zh) | 交互行为识别方法、装置、计算机设备和存储介质 | |
CN108463823B (zh) | 一种用户头发模型的重建方法、装置及终端 | |
CN108090511B (zh) | 图像分类方法、装置、电子设备及可读存储介质 | |
CN111275685A (zh) | 身份证件的翻拍图像识别方法、装置、设备及介质 | |
CN108470178B (zh) | 一种结合深度可信度评价因子的深度图显著性检测方法 | |
CN109063598A (zh) | 人脸毛孔检测方法、装置、计算机设备和存储介质 | |
CN111582155B (zh) | 活体检测方法、装置、计算机设备和存储介质 | |
CN113505707A (zh) | 吸烟行为检测方法、电子设备及可读存储介质 | |
CN111079587B (zh) | 人脸的识别方法、装置、计算机设备及可读存储介质 | |
US11906441B2 (en) | Inspection apparatus, control method, and program | |
CN110751004A (zh) | 二维码检测方法、装置、设备及存储介质 | |
CN110599514A (zh) | 图像分割的方法、装置、电子设备及存储介质 | |
CN106910207B (zh) | 用于识别图像局部区域的方法、装置及终端设备 | |
CN116883698A (zh) | 一种图像对比方法及相关装置 | |
CN113673536B (zh) | 一种图像颜色提取方法、系统及介质 | |
Pul et al. | Automatic Functionality Verification of Hybrid Set-Top Boxes With Dynamic User Interface | |
CN113592876A (zh) | 分割网络的训练方法、装置、计算机设备和存储介质 | |
KR101357581B1 (ko) | 깊이 정보 기반 사람의 피부 영역 검출 방법 |
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 |