CN106991303B - 一种手势验证码的识别方法及装置 - Google Patents
一种手势验证码的识别方法及装置 Download PDFInfo
- Publication number
- CN106991303B CN106991303B CN201710132392.0A CN201710132392A CN106991303B CN 106991303 B CN106991303 B CN 106991303B CN 201710132392 A CN201710132392 A CN 201710132392A CN 106991303 B CN106991303 B CN 106991303B
- Authority
- CN
- China
- Prior art keywords
- verification code
- gesture
- gesture verification
- mouse
- track
- 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.)
- Active
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供一种手势验证码的识别方法及装置,所述方法包括:利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。利用该技术方案可简单而准确地进行手势验证码的机器自动化识别,从而对带手势验证码登录的网站进行自动化安全测试,通过该方法检测网站抵抗风险的能力,并对网站进行优化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种手势验证码的识别方法及装置。
背景技术
手势验证码:验证码是一种区分用户是计算机或人的公共全自动程序,是网络应用中区分人机最重要的手段。目前验证码主要是以下几类:图形验证码、旋转类验证码、知识常识问答验证码、点触验证码、滑块验证码。手势验证码是一种新型的验证码,界面简洁,有着良好的用户体验,对用户造成的干扰也较少。
手势验证码一般是由人来识别并验证,但是在新的手势验证码推出市场时,如果都需要由人工来识别并验证,则效率很低,因此,如何进行手势验证码的机器自动化识别,这是本领域技术人员亟需解决的技术问题。
对于手势验证码的机器自动化识别,现有技术的支持向量机SVM(Support VectorMachine,支持向量机)是一个机器学习领域里常用到的分类器,可以对图形进行边界区分。SVM把数据映射到高维空间,寻找能够分割的超平面。识别手势验证码需要充分利用图片中的信息,才能把手势验证码的有效轨迹和背景部分分离。一张图片,每个像素都可以放在一个5维的空间里,这5个维度分别是,X、Y、R(红)、G(绿)、B(蓝),也就是像素的坐标和颜色,在计算机图形学中,有很多种色彩空间,最常用的比如RGB(红、绿、蓝),色彩空间不同维度也不一样,但是可以通过公式互相转换。SVM利用色彩空间的原理,寻找在该空间适用的公式来进行像素的色差判断。通过对像素颜色进行统计和区分,可以获得图片的颜色分布。手势验证码识别主要是识别验证码中的轨迹信息,而SVM会分析整张图片所有像素的颜色信息,然后判断出图片中的有效轨迹,因此会额外分析很多不必要的信息。而且SVM支持向量机比较复杂,需要一系列繁琐的数学公式和算法才能实现相应的功能,实现成本较高。
另一现有技术OCR(Optical Character Recognition,光学字符识别)光学字符识别技术。其识别验证码主要流程包括:图像采集、预处理、检测、前处理、训练、识别。图像处理的主要方法是二值化和边缘检测,首先把不需要的信息通通去掉,比如背景、干扰线、干扰像素等,之后找出图像的骨架,轨迹可能很宽,将轨迹细化,之后分析图像像素属性变化剧烈的地方,通过一个固定的阀值来判断。分析的属性可能是图片的颜色或灰度,阀值可能是图片整体的,也可能是局部的。OCR也是通过分析整张图片来得到图片的细节,识别的过程要经过一系列复杂的步骤,在这些步骤中,前一个步骤出现了差错,会直接影响其后步骤的处理结果。
综上可见,现有技术手势验证码的机器自动化识别都比较繁琐且复杂。
发明内容
本发明实施例提供一种手势验证码的识别方法及装置,以简单而准确地进行手势验证码的机器自动化识别。
一方面,本发明实施例提供了一种手势验证码的识别方法,所述方法包括:
利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;
根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
另一方面,本发明实施例提供了一种手势验证码的识别装置,所述装置包括:
手势轨迹识别单元,用于利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
坐标信息获取单元,用于根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;并根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
手势模拟验证单元,用于根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
上述技术方案具有如下有益效果:利用该技术方案可简单而准确地进行手势验证码的机器自动化识别,从而对带手势验证码登录的网站进行自动化安全测试,通过该方法检测网站抵抗风险的能力,并对网站进行优化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种手势验证码的识别方法流程示意图;
图2为本发明实施例一种手势验证码的识别装置结构示意图;
图3为本发明实施例手势轨迹识别单元结构示意图;
图4为本发明实施例坐标信息获取单元结构示意图;
图5为本发明实施例手势模拟验证单元结构示意图;
图6为本发明应用实例极坐标表达式示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例一种手势验证码的识别方法流程示意图,所述方法包括:
101、利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
102、根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;
103、根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
104、根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
优选地,所述利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹,包括:判断整个页面是否加载完成,当加载完成后,分析所述整个页面的网页结构,得到并提取包含手势验证码的元素信息;利用html2canvas遍历扫描提取的所述手势验证码的元素信息,将所述手势验证码的元素信息转化为画布canvas图像元素;通过所述开源计算机视觉库OpenCV的霍夫变换方法分析所述画布canvas图像元素,识别出其中的线段轨迹。
优选地,利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别出手势验证码图片中的线段轨迹后,还包括:根据识别出的手势验证码图片中的每一条线段轨迹是否符合预设的斜率和长度条件,剔除不符合预设条件的各无效的线段轨迹,并将符合预设条件的各有效的线段轨迹作为所述手势验证码的各线段轨迹。
优选地,所述根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证,包括:根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
优选地,所述根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证,包括:利用JS通过所述鼠标按下mousedown,在手势验证码滑动的起始点模拟鼠标点击事件,然后通过鼠标移动mousemove沿着滑动轨迹模拟鼠标滑动事件,通过鼠标释放mouseup在手势验证码滑动的终点模拟鼠标释放事件。
对应于上述方法实施例,如图2所示,为本发明实施例一种手势验证码的识别装置结构示意图,所述装置包括:
手势轨迹识别单元21,用于利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
坐标信息获取单元22,用于根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;并根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
手势模拟验证单元23,用于根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
优选地,如图3所示,为本发明实施例手势轨迹识别单元结构示意图,所述手势轨迹识别单元21包括:
手势验证码提取模块211,用于判断整个页面是否加载完成,当加载完成后,分析所述整个页面的网页结构,得到并提取包含手势验证码的元素信息;
手势验证码转化模块212,用于利用html2canvas遍历扫描提取的所述手势验证码的元素信息,将所述手势验证码的元素信息转化为画布canvas图像元素;
轨迹识别模块213,用于通过所述开源计算机视觉库OpenCV的霍夫变换方法分析所述画布canvas图像元素,识别出其中的线段轨迹。
优选地,如图4所示,为本发明实施例坐标信息获取单元结构示意图,所述坐标信息获取单元22包括:轨迹分析模块221,用于所述手势轨迹识别单元21利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别出手势验证码图片中的线段轨迹后,根据识别出的手势验证码图片中的每一条线段轨迹是否符合预设的斜率和长度条件,剔除不符合预设条件的各无效的线段轨迹,并将符合预设条件的各有效的线段轨迹作为所述手势验证码的各线段轨迹。
优选地,所述手势模拟验证单元23,具体用于根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
优选地,如图5所示,为本发明实施例手势模拟验证单元结构示意图,所述手势模拟验证单元23包括:
模拟验证模块231,用于利用JS通过所述鼠标按下mousedown,在手势验证码滑动的起始点模拟鼠标点击事件,然后通过鼠标移动mousemove沿着滑动轨迹模拟鼠标滑动事件,通过鼠标释放mouseup在手势验证码滑动的终点模拟鼠标释放事件。
上述技术方案具有如下有益效果:利用该技术方案可简单而准确地进行手势验证码的机器自动化识别,从而对带手势验证码登录的网站进行自动化安全测试,通过该方法检测网站抵抗风险的能力,并对网站进行优化。
以下通过应用实例对本发明实施例上述技术方案进行详细说明:
本发明应用实例利用基于OpenCV(开源计算机视觉库)的霍夫变换方法,准确识别手势验证码图片中的线段轨迹,并得到各线段轨迹的坐标,根据坐标信息得到手势验证码滑动的起始点、滑动轨迹和终点信息,并利用JS(JavaScript,直译式脚本语言)在合适的位置准确模拟mousedown(鼠标按下)、mousemove(鼠标移动)和mouseup(鼠标释放)事件,完成手势验证码的验证。通过本发明不但可以对带有手势验证码的网站进行自动化安全测试,而且在抓取需要手势验证码的网络资源时,能够自动识别手势验证码,并准确地进行验证,显著提高网络资源的抓取速度。
本发明应用实例提供了一种基于OpenCV霍夫变换的手势验证码的识别方法,从而完成使用手势验证码网站的安全检测以及提高包含手势验证码网络资源的提取速度。
本发明应用实例的技术方案主要包含以下模块:
1.手势验证码提取模块,首先判断整个页面是否加载完成,当加载完成后,分析网页结构,得到并提取包含手势验证码的元素信息。
2.手势验证码转化模块,利用html2canvas遍历扫描提取的手势验证码结构信息,将验证码元素转化为canvas(画布)图像元素。
3.轨迹识别模块,通过OpenCV的霍夫变换分析上面的图像,根据直线的霍夫变换公式完成霍夫变换。读取图像上每一点做霍夫变换,统计交点,用交点信息推出直线的斜率与截距,利用点线之间的距离判别合法点,用最小二乘法模拟直线方程,寻找最大霍夫值,设置阀值,最后得到图像中线段的轨迹信息。
4.轨迹分析模块,识别出其中的线段轨迹后,根据识别出的手势验证码图片中的每一条线段轨迹是否符合预设的斜率和长度条件,剔除不符合预设条件的各无效的线段轨迹,并将符合预设条件的各有效的线段轨迹作为所述手势验证码的各线段轨迹。然后得到轨迹线段端点的坐标。
5.模拟验证模块,通过js在轨迹的起点模拟鼠标点击事件,然后沿着轨迹模拟鼠标滑动事件,在轨迹的终点模拟鼠标释放事件。
本发明应用实例以网页中手势验证码的具体例子,来说明本发明识别并验证网页中的手势验证码的具体技术方案如下:
首先利用setInterval和window.onload来判断整个页面是否加载完成,等加载完成后,遍历页面结构,识别并提取页面中包含手势验证码的元素。
通过html2canvas插件,html2canvas(captcha,{onrendered:function(canvas){}});该函数的参数captcha就是提取的手势验证码元素,利用代理解决跨域的问题,最后将手势验证码元素转化为图像元素。
检测直线的霍夫变换使用含极坐标参数的直线表示方式,这样每条直线对应于theta-p空间下的一条正弦曲线,采用投票求极值的方法寻找曲线。
如图6所示,为本发明应用实例极坐标表达式示意图。
[H,T,R]=hough(BW,’Theta’,20:0.1:75),输入二值图像BW,角度范围与步进,返回H-霍夫空间。
PEAKS=houghpeaks(H,NUMPEAKS),输入霍夫空间和极值数量,返回极值的坐标。
LINES=houghlines(BW,T,R,Peaks),返回lines是一个包含图像中线段首末点。
利用js的createEvent()来模拟事件,onmousedown()模拟鼠标按下,onmousemove()模拟鼠标移动,onmouseup()模拟鼠标释放,通过之前得到的坐标,利用模拟的事件来完成手势的滑动验证。
本发明应用实例技术方案带来的有益效果:利用该技术方案可简单而准确地进行手势验证码的机器自动化识别,从而对带手势验证码登录的网站进行自动化安全测试,通过该方法检测网站抵抗风险的能力,并对网站进行优化。利用该发明在抓取需要手势验证码的网络资源时,能够自动识别验证码,进行准确的抓取,显著提高获取网络资源的速度。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种手势验证码的识别方法,其特征在于,所述方法包括:
利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;
根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
2.如权利要求1所述手势验证码的识别方法,其特征在于,所述利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹,包括:
判断整个页面是否加载完成,当加载完成后,分析所述整个页面的网页结构,得到并提取包含手势验证码的元素信息;
利用html2canvas遍历扫描提取的所述手势验证码的元素信息,将所述手势验证码的元素信息转化为画布canvas图像元素;
通过所述开源计算机视觉库OpenCV的霍夫变换方法分析所述画布canvas图像元素,识别出其中的线段轨迹。
3.如权利要求2所述手势验证码的识别方法,其特征在于,利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别出手势验证码图片中的线段轨迹后,还包括:
根据识别出的手势验证码图片中的每一条线段轨迹是否符合预设的斜率和长度条件,剔除不符合预设条件的各无效的线段轨迹,并将符合预设条件的各有效的线段轨迹作为所述手势验证码的各线段轨迹。
4.如权利要求1所述手势验证码的识别方法,其特征在于,所述根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证,包括:
根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
5.如权利要求4所述手势验证码的识别方法,其特征在于,所述根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证,包括:
利用JS通过所述鼠标按下mousedown,在手势验证码滑动的起始点模拟鼠标点击事件,然后通过鼠标移动mousemove沿着滑动轨迹模拟鼠标滑动事件,通过鼠标释放mouseup在手势验证码滑动的终点模拟鼠标释放事件。
6.一种手势验证码的识别装置,其特征在于,所述装置包括:
手势轨迹识别单元,用于利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别手势验证码图片中的线段轨迹;
坐标信息获取单元,用于根据识别出的手势验证码图片中的线段轨迹,获取手势验证码的各线段轨迹的坐标信息;并根据手势验证码的各线段轨迹的坐标信息,获取所述手势验证码滑动的起始点、滑动轨迹和终点信息;
手势模拟验证单元,用于根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
7.如权利要求6所述手势验证码的识别装置,其特征在于,所述手势轨迹识别单元包括:
手势验证码提取模块,用于判断整个页面是否加载完成,当加载完成后,分析所述整个页面的网页结构,得到并提取包含手势验证码的元素信息;
手势验证码转化模块,用于利用html2canvas遍历扫描提取的所述手势验证码的元素信息,将所述手势验证码的元素信息转化为画布canvas图像元素;
轨迹识别模块,用于通过所述开源计算机视觉库OpenCV的霍夫变换方法分析所述画布canvas图像元素,识别出其中的线段轨迹。
8.如权利要求7所述手势验证码的识别装置,其特征在于,所述坐标信息获取单元包括:
轨迹处理模块,用于所述手势轨迹识别单元利用基于开源计算机视觉库OpenCV的霍夫变换方法,识别出手势验证码图片中的线段轨迹后,根据识别出的手势验证码图片中的每一条线段轨迹是否符合预设的斜率和长度条件,剔除不符合预设条件的各无效的线段轨迹,并将符合预设条件的各有效的线段轨迹作为所述手势验证码的各线段轨迹。
9.如权利要求6所述手势验证码的识别装置,其特征在于,
所述手势模拟验证单元,具体用于根据所述手势验证码滑动的起始点、滑动轨迹和终点信息,利用直译式脚本语言JS模拟鼠标按下mousedown、鼠标移动mousemove和鼠标释放mouseup事件,进行所述手势验证码的验证。
10.如权利要求9所述手势验证码的识别装置,其特征在于,所述手势模拟验证单元包括:
模拟验证模块,用于利用JS通过所述鼠标按下mousedown,在手势验证码滑动的起始点模拟鼠标点击事件,然后通过鼠标移动mousemove沿着滑动轨迹模拟鼠标滑动事件,通过鼠标释放mouseup在手势验证码滑动的终点模拟鼠标释放事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710132392.0A CN106991303B (zh) | 2017-03-07 | 2017-03-07 | 一种手势验证码的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710132392.0A CN106991303B (zh) | 2017-03-07 | 2017-03-07 | 一种手势验证码的识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106991303A CN106991303A (zh) | 2017-07-28 |
CN106991303B true CN106991303B (zh) | 2020-01-21 |
Family
ID=59412595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710132392.0A Active CN106991303B (zh) | 2017-03-07 | 2017-03-07 | 一种手势验证码的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106991303B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107871072B (zh) * | 2017-11-09 | 2020-07-31 | 王海鸥 | 一种应用于客户端界面中的验证方法及系统 |
CN107861848B (zh) * | 2017-11-14 | 2021-06-04 | 东软集团股份有限公司 | 手势密码测试方法、装置、可读存储介质及电子设备 |
CN108549806B (zh) * | 2018-04-11 | 2020-01-31 | 西安电子科技大学 | 基于用户滑动和点击行为的身份认证方法 |
CN110138800A (zh) * | 2019-05-30 | 2019-08-16 | 北京金山云网络技术有限公司 | 界面交互及其验证方法、登陆请求生成及验证方法和装置 |
CN110659500A (zh) * | 2019-08-13 | 2020-01-07 | 平安国际智慧城市科技股份有限公司 | 服务器安全检测方法、装置、计算机设备和存储介质 |
CN116821885B (zh) * | 2023-07-19 | 2024-02-20 | 企查查科技股份有限公司 | 数据采集方法、装置、计算机设备和存储介质 |
CN118570507A (zh) * | 2024-05-08 | 2024-08-30 | 中国电子科技集团公司第十五研究所 | 一种图像特征识别与匹配方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408824A (zh) * | 2008-11-18 | 2009-04-15 | 广东威创视讯科技股份有限公司 | 鼠标手势识别方法 |
CN104836778B (zh) * | 2014-02-11 | 2019-03-12 | 腾讯科技(深圳)有限公司 | 一种验证码的实现方法、装置及系统 |
CN104408455B (zh) * | 2014-11-27 | 2017-09-12 | 上海理工大学 | 粘连字符分割方法 |
CN105844140A (zh) * | 2016-03-21 | 2016-08-10 | 国家电网公司 | 一种可识别验证码的网站登录暴力破解方法及系统 |
CN105975823A (zh) * | 2016-05-05 | 2016-09-28 | 百度在线网络技术(北京)有限公司 | 用于区分人机的验证方法及装置 |
CN105956455B (zh) * | 2016-05-10 | 2019-08-30 | 北京京东尚科信息技术有限公司 | 利用九宫格滑锁验证码进行验证的方法和装置 |
-
2017
- 2017-03-07 CN CN201710132392.0A patent/CN106991303B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106991303A (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991303B (zh) | 一种手势验证码的识别方法及装置 | |
CN110598686B (zh) | 发票的识别方法、系统、电子设备和介质 | |
CN109086203B (zh) | 页面的检测方法和装置 | |
CN109684803B (zh) | 基于手势滑动的人机验证方法 | |
CN109886928B (zh) | 一种目标细胞标记方法、装置、存储介质及终端设备 | |
CN108875600A (zh) | 一种基于yolo的车辆信息检测和跟踪方法、装置及计算机存储介质 | |
CN109993019A (zh) | 基于连通域分析的二维码识别方法、系统及设备和介质 | |
CN112052813B (zh) | 染色体间易位识别方法、装置、电子设备及可读存储介质 | |
CN111738252B (zh) | 图像中的文本行检测方法、装置及计算机系统 | |
CN110135225B (zh) | 样本标注方法及计算机存储介质 | |
CN103473492A (zh) | 权限识别方法和用户终端 | |
CN111368824B (zh) | 一种仪表识别方法、移动设备及存储介质 | |
CA3139448A1 (en) | Image correction method, device and system | |
CN111241897B (zh) | 通过推断视觉关系的工业检验单数字化的系统和实现方法 | |
CN113869364A (zh) | 图像处理方法、装置、电子设备及介质 | |
CN117809115A (zh) | Smt贴片错件检测方法、装置及视觉检测系统 | |
CN112686122A (zh) | 人体及影子的检测方法、装置、电子设备、存储介质 | |
CN107169517B (zh) | 判断重复笔画的方法、终端设备及计算机可读存储介质 | |
CN110992299B (zh) | 一种检测浏览器兼容性的方法及装置 | |
CN112446850A (zh) | 适配测试方法、装置及电子设备 | |
CN112883973A (zh) | 车牌识别方法、装置、电子设备和计算机存储介质 | |
CN110851349A (zh) | 页面异常显示的检测方法、终端设备及存储介质 | |
CN111274369A (zh) | 一种英文单词的识别方法及装置 | |
CN117612176B (zh) | 两边引脚图识别抽取方法、装置、存储介质以及设备 | |
CN118227493B (zh) | 基于深度学习的gui图像识别自动化测试方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |