CN117040832A - 验证方法、装置、电子设备及存储介质 - Google Patents
验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117040832A CN117040832A CN202310988425.7A CN202310988425A CN117040832A CN 117040832 A CN117040832 A CN 117040832A CN 202310988425 A CN202310988425 A CN 202310988425A CN 117040832 A CN117040832 A CN 117040832A
- Authority
- CN
- China
- Prior art keywords
- control point
- track
- curve
- determining
- position information
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 226
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000013507 mapping Methods 0.000 claims abstract description 94
- 230000004044 response Effects 0.000 claims abstract description 17
- 239000013643 reference control Substances 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 17
- 238000007499 fusion processing Methods 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000005855 radiation Effects 0.000 description 8
- 238000007639 printing Methods 0.000 description 7
- 238000005286 illumination Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005336 cracking Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000003708 edge detection Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种验证方法、装置、电子设备及存储介质,涉及图像处理技术领域,尤其涉及内容安全领域。具体实现方案为:获取验证码图像和映射信息;其中,验证码图像包括参考曲线,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点;根据移动控制点的位置信息,确定展示曲线;以及响应于接收到输出指令,输出与展示曲线相关的待验证信息,以便接收验证结果,验证结果是根据待验证信息和参考曲线确定的。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及内容安全领域,更具体地,本公开提供了一种验证方法、装置、电子设备、存储介质以及计算机程序产品。
背景技术
验证码是为了防止自动化的机器人或脚本进行恶意活动而设计的,但随着技术的发展,验证码破解的问题越来越严重。尤其是随着机器学习和人工智能技术的发展,一些复杂的验证码,如文本验证码和图像验证码,可以被打码平台破解。这些工具可以学习和模拟人类的行为,模拟用户在验证过程中的操作行为,使验证过程失效。
发明内容
本公开提供了一种验证方法、装置、电子设备、存储介质以及计算机程序产品。
根据本公开的一方面,提供了一种验证方法,包括:获取验证码图像和映射信息;其中,验证码图像包括参考曲线,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点;根据移动控制点的位置信息,确定展示曲线;以及响应于接收到输出指令,输出与展示曲线相关的待验证信息,以便接收验证结果,验证结果是根据待验证信息和参考曲线确定的。
根据本公开的另一方面,提供了一种验证方法,包括:响应于接收到验证请求,确定验证码图像,验证码图像包括参考曲线;确定映射信息,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;输出验证码图像和映射信息;获取与验证页面中展示曲线相关的待验证信息;以及根据待验证信息和参考曲线,确定验证结果。
根据本公开的另一方面,提供了一种验证装置:包括第一获取模块、移动控制点确定模块、展示曲线确定模块以及第一输出模块。第一获取模块用于获取验证码图像和映射信息。其中,验证码图像包括参考曲线,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系。移动控制点确定模块用于根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点。展示曲线确定模块用于根据移动控制点的位置信息,确定展示曲线。第一输出模块用于响应于接收到输出指令,输出与展示曲线相关的待验证信息,以便接收验证结果,验证结果是根据待验证信息和参考曲线确定的。
根据本公开的另一方面,提供了一种验证装置,包括:验证码确定模块、映射信息确定模块、第二输出模块、第二获取模块以及结果确定模块。验证码确定模块用于响应于接收到验证请求,确定验证码图像,验证码图像包括参考曲线。映射信息确定模块用于确定映射信息,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系。第二输出模块用于输出验证码图像和映射信息。第二获取模块用于获取与验证页面中展示曲线相关的待验证信息。结果确定模块用于根据待验证信息和参考曲线,确定验证结果。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的验证方法和装置的应用场景示意图;
图2是根据本公开实施例的验证方法的示意流程图;
图3是根据本公开另一实施例的验证方法的示意流程图;
图4是根据本公开另一实施例的验证方法的示意图;
图5是根据本公开实施例的确定映射信息的示意原理图;
图6是根据本公开实施例的生成验证码图像的方法的示意流程图;
图7是根据本公开另一实施例的生成验证码图像的示意流程图;
图8是根据本公开实施例的验证装置的示意结构框图;
图9是根据本公开另一实施例的验证装置的示意结构框图;以及
图10是用来实施本公开实施例的验证方法的电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例的验证方法和装置的应用场景示意图。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求生成的验证码图像、验证结果等)反馈给终端设备。
需要说明的是,本公开实施例所提供的验证方法一般可以由服务器105和/或终端设备101、102、103执行。相应地,本公开实施例所提供的验证装置一般可以设置于服务器105和/或终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本公开实施例提出了一种验证方法,该方法涉及服务端和客户端,服务端可以生成验证码图像,验证码图像包括参考曲线。客户端从服务端获取验证码图像,并在验证页面中展示该验证码图像,同时验证页面中还包括滑块和展示曲线,用户通过鼠标控制滑块沿滑块轨迹滑动。在滑块滑动的过程中,可以改变展示曲线的形状。滑块滑动至特定位置,展示曲线的形状会与参考曲线的形状大体一致,用户认为展示曲线的形状与参考曲线的形状一致之后可以点击提交选项。客户端将与展示曲线相关的验证信息发送至服务端。服务端基于该验证信息和参考曲线确定验证结果。
以下结合图2~图5,对本公开实施例提供的验证方法进行说明。
图2是根据本公开实施例的验证方法的示意流程图。
如图2所示,该验证方法200可以包括操作S210~操作S240,该方法可以由客户端执行。
在操作S210,获取验证码图像和映射信息。
在操作S220,根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点。
在操作S230,根据移动控制点的位置信息,确定展示曲线。
在操作S240,响应于接收到输出指令,输出与展示曲线相关的待验证信息,以便接收验证结果,验证结果是根据待验证信息和参考曲线确定的。
例如,可以由服务端生成验证码图像,然后发送至客户端。例如,验证码图像包括参考曲线,参考曲线可以为贝塞尔曲线、抛物线等曲线,本实施例不做限定。
例如,可以由服务端生成映射信息,然后将映射信息发送至客户端。例如,映射信息表征控制点轨迹中轨迹点与滑块轨迹中轨迹点之间的映射关系。
例如,滑块的当前轨迹点可以表示:在当前时刻滑块所处的轨迹点。客户端可以对验证页面中滑块的位置进行检测,来确定滑块的当前轨迹点。
例如,客户端根据预定的函数、移动控制点以及一些其他预先设置的固定点,拟合出展示曲线。还可以在验证页面渲染该展示曲线,从而方便用户直观知晓展示曲线与参考曲线之间的差异。
例如,用户认为展示曲线与参考曲线一致时,可以控制鼠标松开或者点击提交选项,该操作触发输出指令。客户端接收到该输出指令,向服务端发送待验证信息。
例如,待验证信息可以包括最新的展示曲线中多个轨迹点的位置信息,也可以包括最新的移动控制点的位置信息。
本公开实施例采用包含参考曲线的验证码,并且将滑块的滑动映射为展示曲线的形状,之后基于展示曲线和参考曲线确定验证结果。曲线的复杂性和随机性使得可以低成本地获得大量且彼此不重复的验证码,降低验证码的生产成本。并且显著增加的验证码数量和验证码的随机性还会提高打码平台的破解难度,提高验证码的安全性。通过用户拖动滑块来控制展示曲线的形状,该种操作难以被打码平台模拟,从而有效防止了打码平台的自动化攻击,进一步提高验证码的安全性。
此外,曲线的形状和位置可以通过算法随机生成,使得验证码可以适应各种不同的设备和环境,例如不同大小的屏幕,不同类型的输入设备等。相比于传统的文字验证码,可能会因为语言、字体、大小等问题导致用户难以识别。而曲线形式的验证码则无需文字输入,避免了这些问题。另外,用户通过拖动滑块来改变展示曲线的形状,该种操作方式比输入文字或数字更加直观,可以提供更好的用户体验。
图3是根据本公开另一实施例的验证方法的示意流程图。
如图3所示,该验证方法300可以包括操作S310~操作S340,该方法可以由服务端执行。
在操作S310,响应于接收到验证请求,确定验证码图像,验证码图像包括参考曲线。
在操作S320,确定映射信息,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系。
在操作S330,输出验证码图像和映射信息。
在操作S340,获取与验证页面中展示曲线相关的待验证信息。
在操作S350,根据待验证信息和参考曲线,确定验证结果。
例如,服务端接收到客户端发送的验证请求,可以生成验证码图像,验证码图像的生成方法将在下文详细描述,在此不再赘述。
例如,服务端可以随机确定一条轨迹作为控制点轨迹,滑块轨迹是根据前端页面预先配置的。控制点轨迹和滑块轨迹均包括多个轨迹点,可以按照轨迹点在轨迹中的次序,确定两个轨迹之间的映射信息。
例如,服务端可以根据待验证信息,确定在客户端渲染出的展示曲线,然后确定展示曲线与参考曲线之前的相似度,若相似度较高,则确定验证通过,否则确定验证未通过。
根据本公开实施例提供的技术方案,可以提高打码平台破解难度,防止了打码平台的自动化攻击,提高验证码的安全性。并且还可以提供更好的用户体验。
图4是根据本公开另一实施例的验证方法的示意图。
如图4所示,该验证方法400可以包括操作S411~操作S416以及操作S421~操作S424。
在操作S411,客户端向服务端发送验证请求。
在操作S421,服务端生成验证码图像,验证码图像包括参考曲线。
例如,服务端可以根据第一参考控制点的位置信息和第二参考控制点的位置信息,确定参考曲线。以参考曲线为贝塞尔曲线为例,第二参考控制点包括参考曲线的起点和终点,第一参考曲线可以为中间的控制点,通过起点、终点和中间的控制点,可以唯一确定一条贝塞尔曲线。例如,以二阶贝塞尔曲线为例,该曲线具有三个控制点P0、P1和P2,该三个控制点决定了曲线的形状。
在操作S422,服务端确定映射信息。
在操作S423,服务端向客户端发送验证码图像和映射信息。
在操作S412,客户端确定滑块的当前轨迹点。
在操作S413,客户端根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点。
在操作S414,客户端根据移动控制点的位置信息,渲染展示曲线。
例如,客户端根据移动控制点的位置信息和第二参考控制点的位置信息,确定展示曲线。
在操作S415,客户端确定是否接收到输出指令。若是,则执行操作S416。若否,则执行操作S412,从而更新滑块的当前轨迹点,实现展示曲线的实时渲染,方便用户直观知晓展示曲线与参考曲线之间的差异。
例如,用户认为展示曲线与参考曲线一致时,可以点击提交选项,此时会触发输出指令。
在操作S416,客户端向服务端发送与展示曲线相关的待验证信息。
在操作S424,服务端根据待验证信息和参考曲线,确定验证结果。
在操作S425,服务端向客户端输出验证结果。
例如,若用户移动滑块后的展示曲线与参考曲线一致,则验证码验证成功,服务器返回成功的消息。若不一致,则验证失败,服务端返回失败的消息,并提示用户重新尝试。
本公开实施例针对上述控制点轨迹中轨迹点与滑块轨迹中轨迹点之间的映射信息进行如下说明。
值得注意的是,滑块可以在验证页面中沿水平方向的滑块轨迹进行滑动,若移动控制点的滑动轨迹仍然简单地沿水平方向,则移动控制点的解空间较小,容易被打码平台计算出移动控制点的答案位置,本实施例中答案位置表示第一参考控制点所在的位置。因此,本实施例采用预定函数来确定控制点轨迹,预定函数可以采用除了与x轴或y轴平行的直线之外的其他任意函数。
预定函数使得移动控制点的解空间是二维的,基于预定函数来确定映射信息,实现移动控制点的二维解空间与一维滑块位置之间的映射,使得打码平台难以计算滑块的拖动动作与用户输入的展示曲线之间的关系,从而提高打码平台破解验证码的难度。
以下对确定映射信息的过程进行详细说明。
例如,服务端可以根据第一参考控制点的位置信息和预定函数,确定控制点轨迹,该控制点轨迹包括第一参考控制点,且预定函数表征的函数曲线与控制点轨迹一致。
以预定函数为直线方程y=kx+b为例,可以进行初始化处理,初始化处理可以包括:随机确定一个参数(例如参考k),随机确定控制点轨迹的长度,以及随机确定第一参考控制点在控制点轨迹中的位置,该位置可以体现第一参考控制点与控制点轨迹起点之间的距离。然后将第一参考控制点的位置信息带入直线方程,求解另一个参数(例如参数b),从而得到直线。然后根据初始化处理过程中的长度和控制点在控制点轨迹中的位置,来确定控制点轨迹的路径、起点和终点,进而得到控制点轨迹。
可以理解的是,预定函数还可以为其他函数,本实施例对预定函数不做限定。预定函数可以为单调函数,单调函数可以确保用户沿某个方向移动滑块的过程中,展示曲线大体沿同一个趋势变化,进而方便用户利用滑块控制展示曲线的形状。
例如,服务端可以根据控制点轨迹的长度和滑块轨迹的长度,确定映射信息。例如根据两条轨迹的长度比例,进行轨迹点的映射。
本实施例中预定函数使得移动控制点的解空间是二维的,基于预定函数来确定映射信息,能够使打码平台难以计算滑块的拖动动作与用户输入的展示曲线之间的关系,从而提高打码平台破解验证码的难度。此外,可以使滑块的滑动与展示曲线的变形具有规律性,方便用户利用滑块控制展示曲线的形状。
上文对服务端确定映射信息的工作原理进行了说明,接下来结合图5进行举例说明。如图5所示,预先在页面中生成一个参考曲线L0,该参考曲线L0是基于三个控制点P0、P1和P2生成的。滑块501可以沿轨迹L1滑动。在处理过程中,可以初始化一条控制点轨迹L2,该控制点轨迹L2包含第一参考控制点P1,然后建立控制点轨迹L2与滑块轨迹L1之间的映射关系。
以参考曲线L0为贝塞尔曲线为例,对于一个给定的贝塞尔曲线,将其起点P0和终点P2作为展示曲线的起点和终端,让用户拖动滑块501来改变展示曲线的形状,展示曲线同样为贝塞尔曲线。随着滑块501位置的改变,基于映射信息将滑块501的位置映射为展示曲线的中间控制点的坐标,该中间控制点即为控制点轨迹L2中的某个移动控制点。基于上述控制的P0、P2和移动控制点可以计算出展示曲线的形状。随着滑块501的移动,展示曲线会随之变化,在前端页面中实时渲染最新的展示曲线,若滑块501移动到能够通过验证的位置,展示曲线会与参考曲线重叠或接近。
可以看出,服务端根据控制点P0、P1和P2生成参考曲线,客户端根据控制点P0、P2和移动控制点生成展示曲线,并且移动控制点的移动范围(即控制点轨迹)中包含P1,因此若移动控制点与P1重合或相近,则展示曲线与参考曲线相同或相近。
以上对服务端确定映射信息的过程进行了详细说明。
在客户端得到映射信息之后,如用户不进行操作,则前端页面会渲染初始的展示曲线。若用户拖动滑块移动,则前端页面会根据用户拖动的滑块的当前位置信息,在前端页面实时渲染最新的展示曲线。以下对客户端渲染展示曲线的过程进行说明。
首先,可以确定多个比例系数,多个比例系数与多个比例节点一一对应。
例如,比例系数可以是0~1之间的数值,比例系数可以表征展示比例节点在展示曲线中所处的比例。可以根据实际需求预先配置比例系数,例如比例系数为0.1、0.2、0.3等。
又例如,可以根据验证页面的分辨率,确定比例节点的数量。然后根据比例节点的数量,确定多个比例系数。
具体的,分辨率为300*200,表示长度是300,扣除首尾一些空间之后的区域作为显示展示曲线的区域,例如首尾预留空间为50,则比例节点数量可以为250。然后将比例节点的数量作为参数num_points,通过np.linspace函数生成多个比例系数t。基于分辨率来确定比例系数,可以使生成的展示曲线适配验证页面的分辨率,提高展示效果。比例系数t的计算公式如下:
t=np.linspace(0,1,num_points)
接下来,可以根据移动控制点的位置信息、第二参考控制点的位置信息、多个比例系数以及预定轨迹方程,确定多个比例节点各自的初始位置信息。
例如,以预定轨迹方程为贝塞尔曲线公式的x、y参数方程为例,预定轨迹方程表征比例节点的位置与控制点位置、比例系数之间的关系。将比例系数t代入预定轨迹方程,得到对应的初始位置信息,以数组(x,y)的形式记录初始位置信息。预定轨迹方程如下:
x=(1-t)2*P0[0]+2*(1-t)*t*P1[0]+t2*P2[0]
y=(1-t)2*P0[1]+2*(1-t)*t*P1[1]+t2*P2[1]
上述预定轨迹方程中,P0和P2是第二参考控制点,P1是第一参考控制点,P0[0]是P0的x值,P0[1]是P0的y值,P1[0]是P1的x值,P1[1]是P1的y值,P2[0]是P2的x值,P2[1]是P2的y值。
通过上述参数方程,可以计算出num_points个数组(x,y),即计算出num_points个初始位置信息。
接下来,对多个比例节点的初始位置信息分别进行取整处理,得到多个比例节点的位置信息。即,将数组(x,y)中的x值和y值近似为整数,取整之后的每个数组(x,y)可以表示一个像素,num points个像素会形成一条展示曲线。通过取整操作,可以将初始位置信息近似为周围的像素点的位置,从而方便基于像素进行展示曲线的渲染。在一些实施例中,也可以省略取整操作,直接将初始位置信息确定为比例节点的位置信息。
接下来,可以根据多个比例节点各自的位置信息,确定展示曲线。例如设置展示曲线中各个轨迹点的像素值并进行渲染。
以上对客户端渲染展示曲线的过程进行了说明,本实施例将函数图形转换为前端页面中的像素点并进行显示,确保展示曲线在各种设备和浏览器上都能正确显示。
在客户端渲染展示曲线之后,用户可以根据实际请求触发输出指令,然后客户端将与展示曲线相关的验证信息发送至服务端,服务端判断是否通过验证。以下对服务端根据待验证信息确定验证结果的过程进行说明。
例如,待验证信息包括展示曲线中多个曲线点的位置信息,服务端可以比较该多个曲线点的位置信息与参考曲线的偏离程度,从而的待验证结果。
又例如,待验证信息包括移动控制点的位置信息。服务端可以计算移动控制点的位置信息与第一参考控制点的位置信息之间的距离,并根据该距离大小确定是否通过验证。本实施例中,客户端仅向服务端发送移动控制点的位置信息,无需发送展示曲线中多个曲线点,传输的数据量更小。
又例如,待验证信息包括移动控制点的位置信息。服务端可以根据移动控制点的位置信息和第二参考控制点的位置信息,确定客户端渲染出的展示曲线,然后比较根据展示曲线和参考曲线是否一致,从而得到验证结果。本实施例基于两条曲线的差异来确定验证结果,相比于仅比较移动控制点与第一参考控制点之间的位置偏移,可以提高验证结果的准确性。
在实际校验过程中,服务端可以确定参考曲线中的多个第一轨迹点和展示曲线中的多个第二轨迹点,多个第一轨迹点与多个第二轨迹点一一对应。然后将多个第一轨迹点和多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点。针对每个轨迹点对,确定第一轨迹点与第二轨迹点之间的距离,然后根据多个轨迹点对各自的距离,确定验证结果。
例如,对于展示曲线和参考曲线,每条轨迹包括一系列的点,每个点对应有位置信息。可以沿x轴方向,每隔预定间隔从参考曲线和展示曲线中选取轨迹点。接下来,可以按照轨迹点的排列顺序,将相同次序的第一轨迹点和第二轨迹点构成一个轨迹点对。计算同一个轨迹点对中的第一轨迹点和第二轨迹点之间的欧几里得距离,接下来计算多个轨迹点对的距离之和,得到总距离。若总距离小于等于距离阈值,则表示第一验证结果是通过验证,否则表示第一验证结果是未通过验证。
本示例根据多个相对应的轨迹点之间的距离来确定总距离,并根据总距离确定验证结果,可以提高验证结果的准确性。
以上对基于验证码图像进行验证的过程进行了说明,可以理解的是,在实际验证过程中,可以由服务端预先生成验证码图像,以下结合图6和图7,对上述操作310的过程进行详细说明。上述操作S31为生成验证码图像的过程。
图6是根据本公开实施例的生成验证码图像的方法的示意流程图。
如图6所示,该生成验证码图像的方法610可以包括操作S611~操作S613。
在操作S611,在预定区域中生成N个控制点,N是大于等于1的整数。
例如,可以预先配置预定区域,例如将0~100像素的区域配置为预定区域。可以预先配置N个数量,例如N为1、2、3、4等,本实施例对N的数值不做限定。
例如,可以为每个控制点配置一个对应的预定区域,可以在预定区域内,随机生成与该预定区域相对应的控制点。又例如,也可以为N个控制点配置同一个预定区域,可以在该预定区域中随机生成N个控制点。
在操作S612,根据N个控制点,确定参考曲线。
需要说明的是,若后续对参考曲线进行融合处理,融合处理会使参考曲线的颜色等发生变化,上文中的参考曲线可以表示经过融合处理之后的参考曲线。若不对参考曲线进行融合处理,则上文中的参考曲线即为参考曲线。
例如,每个控制点可以对应有位置信息,位置信息例如为坐标值(x,y)。可以预先配置函数类型,函数类型例如为贝塞尔曲线、抛物线、双曲线等,贝塞尔曲线可以为二阶贝塞尔曲线或三阶贝塞尔曲线。然后基于控制点的位置信息求解函数的参数,从而得到函数曲线。可以将函数曲线中的全部或部分线段确定为参考曲线。
在操作S613,根据参考曲线和背景图像,确定验证码图像。
例如,可以从素材库中随机选择图像,作为背景图像。又例如,可以利用图片生成工具来生成图像,并将生成的图像作为背景图像,图片生成工具可以包括图生成模型,图生成模型例如为AIGC。采用图片生成工具可以生成全新的背景图像,避免素材库中的背景图像被打码平台破解造成而影响严重安全性的问题。
例如,可以将参考曲线与背景图像组合,得到初始验证码图像,可以将初始验证码图像作为验证码图像,也可以对参考曲线与背景图像进行融合,并将融合后的图像作为验证码图像。
需要说明的是,本实施例仅涉及生成验证码图像的过程,不涉及应用验证码图像的过程。在实际应用中,可以采用多种方式来应用该验证码图像并确定验证结果。例如,可以通过客户端展示验证码图像,用户可以通过操作鼠标,使鼠标沿着验证码图像中的曲线滑动,从而采集用户的滑动轨迹,通过确定滑动轨迹与参考曲线之间的相似度确定是否通过验证。又例如,可以通过客户端展示验证码图像,用于可以控制滑块沿某个直线轨迹滑动,将滑块的位置映射为曲线形状,在用户确认滑块移动到位之后,通过确定最后的曲线形状与参考曲线之间的相似度确定是否通过验证。
图7是根据本公开实施例的生成验证码图像的方法的示意流程图。
如图7所示,该生成验证码图像的方法710可以包括操作S7111~操作S7114、操作S7121~操作S7123以及操作S7131~操作S7132。
在操作S7111,确定用于展示验证码图像的前端页面的风险等级。
例如,可以利用风险检测服务对用户在前端页面的操作行为、前端页面的属性信息等进行检测并确定风险等级,然后风险检测服务将风险等级发送至服务端。本实施例对风险检测服务的工作原理不做限定。
在操作S7112,根据风险等级,从针对多个曲线的多个候选类型中确定与风险等级相对应的目标类型。
例如,预先将多个曲线划分为多个候选类型,然后配置风险等级与曲线类型的对应关系,曲线的复杂度与风险等级呈正相关,即风险等级越高,曲线的复杂度越高。从而在前端页面存在风险的情况下,在前端页面弹出包含更复杂曲线的验证码图像。基于前端页面的风险等级来确定曲线的复杂度,能够提高验证的安全性。
在操作S7113,根据目标类型和控制点数量之间的对应关系,确定待生成控制点的目标数量。
例如,可以预先根据曲线的类型和控制点信息之间的对应关系,控制点信息包括控制的数量、分布信息等。然后基于该对应关系,确定控制点的目标数量、分布情况等。
在操作S7114,在预定区域中的预定范围内,生成目标数量个控制点。
例如,在预定区域中的预定范围内,随机生成目标数量个控制点。
在操作S7121,根据N个控制点,生成初始曲线。
例如,以初始曲线为贝塞尔曲线为例,可以根据将控制点的位置信息带入贝塞尔曲线的函数表达式,求解函数的参数,从而生成初始曲线。
在操作S7122,对初始曲线进行几何变换,得到变换后的曲线。
例如,几何变换可以包括旋转、平移、缩放等。可以预先配置几何变换的幅度范围,然后在幅度范围内进行随机变换,例如配置旋转角度、平移距离、缩放比例的范围,然后在范围内进行随机变换,从而增加曲线的随机性,进一步提高验证码图像的破解难度。
在操作S7123,响应于检测到变换后的曲线的布局信息满足预定条件,将变换后的曲线确定为参考曲线。
例如,预定条件可以包括:预定区域划分为多个子区域,变换后的曲线处于至少两个子区域。例如,多个子区域可以呈阵列分布,例如可以将预定区域从左至右进行划分和/或从上至下进行划分,可以将预定区域划分为左上、右上、左下、右下4个区域。变换后的曲线至少出现在两个子区域,来确保变换后的曲线与验证码图像的布局具有较好的适应性,并且方便用户在前端页面进行验证操作。
例如,预定条件可以包括:变换后的曲线的矩形包围框面积与预定区域的面积之间的比值大于等于第一预定面积比值且小于等于第二预定面积比值。例如,矩形包围框将变换后的曲线包围在自身内部,该矩形包围框的长度可以表示曲线沿x方向延伸的距离,该矩形包围框的宽度可以表示曲线沿y方向延伸的距离。例如,第一预定面积比值可以是0.2,第二预定面积比值可以是0.3,矩形包围框面积与预定区域的面积之间的比值可以是0.25左右,本实施例对此不做限定。
例如,预定条件可以包括:变换后的曲线的矩形包围框的边长与预定区域的边长之间的比值大于等于第一预定边长比值且小于等于第二预定边长比值。边长可以是矩形包围框的长,也可以是矩形包围框的宽。
可以理解的是,上述预定条件可以单独使用,也可以组合使用。
在操作S7131,将参考曲线与背景图像组合,得到初始验证码图像。
在操作S7132,针对初始验证码图像,对参考曲线和背景图像进行融合处理,得到验证码图像。
需要说明的是,将参考曲线置于背景图像上,便形成了初始验证码图像,但是该初始验证码图像中,曲线与背景之间的边缘明显,容易被打码平台识别和破解,因此可以进行融合处理,使验证码图像中的曲线更难以被机器识别。
融合处理可以包括纹理匹配、模糊和羽化、透明度调整、颜色匹配以及光照与阴影等多种融合方式,以下对融合处理的过程进行详细说明。
在一种融合处理中,可以进行纹理匹配。例如,背景图片生成时,会使用某种图片风格,例如波普风、孟菲斯或者光感风。可以将相同的图片风格作为滤镜来修改参考曲线,使调整后的参考曲线的风格与背景图像的风格一致。该种纹理匹配可以使曲线的外观与背景图像更加一致,增加融合度。
在另一种融合处理中,可以进行模糊和羽化处理。例如,对曲线进行适当的模糊或羽化处理,可以具体采用高斯模糊处理,使曲线边缘与周围环境更加融合。通过柔化曲线的边界,可以减少边缘的锐利度,使其更难以被区分出来。
在另一种融合处理中,可以进行透明度调整。利于预先配置透明度范围,该范围可以是40%~60%。然后在该范围内随机选取透明度值,并调整曲线的透明度,使曲线与背景图片的背景透明度相匹配。
在另一种融合处理中,可以进行颜色匹配。例如,可以在参考曲线中确定M个节点,M是大于等于2的整数。然后针对M个节点中的每个节点,根据初始验证码图像中处于节点周围的其他像素的像素值,确定节点的像素值。然后针对参考曲线中处于相邻两个节点之间的线段,该线段包括多个曲线点,根据相邻两个节点各自的像素值,确定该线段中多个曲线点各自的像素值。
例如,将参考曲线作为起点为0且终点为1的曲线,根据预先的配置信息或者随机从曲线中选取M个节点,例如选取与0、0.2、9.5、0.8和1分别对应的节点。针对每个节点,可以确定以节点为中心以预定数量个像素为半径的范围,将该范围内全部像素的RGB平均值作为该节点的像素值,预定数量可以是5。接下来,对于相邻两个节点之间的线段,可以对线段中的多个曲线点填充渐变色,并且渐变色是从一个节点的像素值至另一个节点的像素值进行渐变。
本示例通过颜色匹配的方式进行融合,可以使验证码图像中曲线的颜色与背景颜色相近,使得曲线的颜色与周围环境相协调,难以被区分出来。
在另一种融合处理中,可以进行光照与阴影处理。通过光照和阴影的方式进行融合,可以调整验证码图像中曲线的光照和阴影效果,使曲线与背景中的光照条件相符合。通过模拟自然光照效果,可以使曲线看起来更加自然,并与周围环境相融合。
可以先确定初始验证码图像中光源的光源位置信息,确定光源的方式如下:可以将初始验证码图像转换为灰度图像,然后应用边缘检测算法(例如Canny算法)对灰度图像进行边缘检测,得到灰度图像中的边缘信息。还可以对边缘图像进行阈值分割,将强度值高于某个阈值的边缘部分提取出来。接下来,在确定边缘信息表征连通区域的情况下,根据灰度图像中与连通区域对应的局部图像的面积和亮度确定光源。例如通过边缘检测得到一些连通区域,与连通区域对应的局部图像的面积处于预定范围内且亮度大于阈值,则将该连通区域作为候选区域,然后基于亮度和面积进行加权和的计算得到候选区域的评价值,对候选区域按照评价值进行排序,将最高评价值的候选区域作为光源的高光区域。然后将光源在初始验证码图像中的位置信息确定为光源位置信息。本实施例基于边缘检测和阈值确定候选区域,然后基于亮度和面积从候选区域中确定光源所处的区域,可以在初始验证码图像中准确确定光源。
在确定光源位置信息之后,可以调整参考曲线的亮度。例如,针对参考曲线中的节点,根据节点在初始验证码图像中的位置信息与光源位置信息,确定节点的目标亮度,并将节点的亮度调整为目标亮度。此处的节点可以为参考曲线中的全部曲线点或部分曲线点,例如可以遍历参考曲线中的每个曲线点,计算该曲线点与光源之间的相对距离,曲线点的亮度与该曲线点至光源的距离呈负相关,即距离越小亮度越高,通过提高或降低该点的亮度,使曲线的亮度更加真实。
在确定光源位置信息之后,还可以生成针对参考曲线的阴影。例如,在初始验证码图像中,基于多个角度确定以光源位置信息为起点的多个放射线,即以光源为中心,遍历每一个角度确定出多个放射线。然后根据多个放射线和参考曲线的交点,生成针对参考曲线的阴影。本实施例以光源为中心确定放射线,然后基于放射线与曲线的交点来生成阴影,可以使阴影效果真实。
例如,参考曲线具有一定的宽度,参考曲线中靠近光源的一侧为内存,远离光源的一侧为外侧,可以针对每个放射线,将该放射线与参考曲线的内侧的交点作为内侧交点A,将放射线与参考曲线的外侧的交点作为外侧交点B。然后根据内侧交点A和外侧交点B之间的距离(即线段AB的长度)和目标系数,确定目标长度,例如在0~1之间随机确定目标系数,目标系数决定阴影宽度的大小,将线段AB的长度与目标系数的乘积作为目标长度。然后在初始验证码图像中,以外侧交点B为起点且沿放射线的方向,生成长度为目标长度的阴影,可以看出,外侧交点的集合为阴影的边际区域。本实施例根据线段AB和目标系数确定阴影长度,可以提高阴影小姑的真实性,并且基于随机的目标系数确定阴影长度,还可以提高验证码图像的随机性,进一步提高验证码图像的破解难度。
以上对融合处理的过程进行了详细说明,通过融合处理可以使曲线与背景融合得更好,难以被单独分辨出来。可以理解的是,上述多种融合处理可以单独使用,也可以组合使用。
以上结合图6和图7,对验证码图像的生成过程进行了说明。
图8是根据本公开实施例的验证装置的示意结构框图。
如图8所示,该验证装置800可以包括第一获取模块810、移动控制点确定模块820、展示曲线确定模块830以及第一输出模块840。
第一获取模块810用于获取验证码图像和映射信息。其中,验证码图像包括参考曲线,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系。
移动控制点确定模块820用于根据映射信息,从控制点轨迹中,确定与滑块的当前轨迹点满足映射关系的移动控制点。
展示曲线确定模块830用于根据移动控制点的位置信息,确定展示曲线。
第一输出模块840用于响应于接收到输出指令,输出与展示曲线相关的待验证信息,以便接收验证结果,验证结果是根据待验证信息和参考曲线确定的。
根据本公开另一实施例,参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的,第一参考控制点处于控制点轨迹中。展示曲线确定模块包括:展示曲线确定子模块,用于根据移动控制点的位置信息和第二参考控制点的位置信息,确定展示曲线。
根据本公开另一实施例,展示曲线确定子模块包括:系数确定单元、位置确定单元以及曲线确定单元。系数确定单元用于确定多个比例系数。位置确定单元用于根据移动控制点的位置信息、第二参考控制点的位置信息、多个比例系数以及预定轨迹方程,确定多个比例节点各自的位置信息,其中,多个比例节点与多个比例系数一一对应。曲线确定单元用于根据多个比例节点各自的位置信息,确定展示曲线。
根据本公开另一实施例,系数确定单元包括:数量确定子单元和系数确定子单元。数量确定子单元用于根据验证页面的分辨率,确定比例节点的数量。系数确定子单元用于根据比例节点的数量,确定多个比例系数。
根据本公开另一实施例,位置确定单元包括:位置确定子单元和取整子单元。位置确定子单元用于根据移动控制点的位置信息、第二参考控制点的位置信息、多个比例系数以及预定轨迹方程,确定多个比例节点各自的初始位置信息。取整子单元用于对多个比例节点的初始位置信息分别进行取整处理,得到多个比例节点的位置信息。
根据本公开另一实施例,参考曲线为贝塞尔曲线,第二参考控制点包括参考曲线的起点和终点。
根据本公开另一实施例,还包括:更新模块,用于响应于未接收输出指令,更新滑块的当前轨迹点,并返回确定移动控制点的操作。
图9是根据本公开另一实施例的验证装置的示意结构框图。
如图9所示,该验证装置900可以包括:验证码确定模块910、映射信息确定模块920、第二输出模块930、第二获取模块940以及结果确定模块950。
验证码确定模块910用于响应于接收到验证请求,确定验证码图像,验证码图像包括参考曲线。
映射信息确定模块920用于确定映射信息,映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系。
第二输出模块930用于输出验证码图像和映射信息。
第二获取模块940用于获取与验证页面中展示曲线相关的待验证信息。
结果确定模块950用于根据待验证信息和参考曲线,确定验证结果。
根据本公开另一实施例,参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的。映射信息确定模块包括:轨迹确定子模块和映射信息确定子模块。轨迹确定子模块用于根据第一参考控制点的位置信息和预定函数,确定控制点轨迹。映射信息确定子模块用于根据控制点轨迹的长度和滑块轨迹的长度,确定映射信息。控制点轨迹包括第一参考控制点,且预定函数表征的函数曲线与控制点轨迹一致。
根据本公开另一实施例,待验证信息包括移动控制点的位置信息,移动控制点处于控制点轨迹中,且移动控制点与滑块的当前轨迹点满足映射关系。结果确定模块包括:曲线确定子模块和结果确定子模块。曲线确定子模块用于根据移动控制点的位置信息和第二参考控制点的位置信息,确定展示曲线。结果确定子模块用于根据展示曲线和参考曲线,确定验证结果。
根据本公开另一实施例,结果确定子模块果包括:轨迹点确定单元、划分单元、距离确定单元以及结果确定单元。轨迹点确定单元用于确定参考曲线中的多个第一轨迹点和展示曲线中的多个第二轨迹点,多个第一轨迹点与多个第二轨迹点一一对应。划分单元用于将多个第一轨迹点和多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点。距离确定单元用于针对每个轨迹点对,确定第一轨迹点与第二轨迹点之间的距离。结果确定单元用于根据多个轨迹点对各自的距离,确定验证结果。
根据本公开另一实施例,预定函数为单调函数。
根据本公开的实施例,本公开还提供了一种电子设备,包括至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述验证方法。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述验证方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述验证方法。
图10是用来实施本公开实施例的验证方法的电子设备的结构框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如验证方法。例如,在一些实施例中,验证方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1 000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的验证方法的一个或多个步骤。备选地,在其他实施例中,计算单元1 001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行验证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (27)
1.一种验证方法,包括:
获取验证码图像和映射信息;其中,所述验证码图像包括参考曲线,所述映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;
根据所述映射信息,从所述控制点轨迹中,确定与所述滑块的当前轨迹点满足映射关系的移动控制点;
根据所述移动控制点的位置信息,确定展示曲线;以及
响应于接收到输出指令,输出与所述展示曲线相关的待验证信息,以便接收验证结果,所述验证结果是根据所述待验证信息和所述参考曲线确定的。
2.根据权利要求1所述的方法,其中,所述参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的,所述第一参考控制点处于控制点轨迹中;
所述根据所述移动控制点的位置信息,确定展示曲线包括:
根据所述移动控制点的位置信息和所述第二参考控制点的位置信息,确定所述展示曲线。
3.根据权利要求2所述的方法,其中,所述根据所述移动控制点的位置信息和所述第二参考控制点的位置信息,确定所述展示曲线包括:
确定多个比例系数;
根据所述移动控制点的位置信息、所述第二参考控制点的位置信息、所述多个比例系数以及预定轨迹方程,确定多个比例节点各自的位置信息,其中,所述多个比例节点与多个所述比例系数一一对应;以及
根据所述多个比例节点各自的位置信息,确定所述展示曲线。
4.根据权利要求3所述的方法,其中,所述确定多个比例系数包括:
根据所述验证页面的分辨率,确定所述比例节点的数量;以及
根据所述比例节点的数量,确定所述多个比例系数。
5.根据权利要求3所述的方法,其中,所述根据所述移动控制点的位置信息、所述第二参考控制点的位置信息、所述多个比例系数以及预定轨迹方程,确定多个比例节点各自的位置信息包括:
根据所述移动控制点的位置信息、所述第二参考控制点的位置信息、所述多个比例系数以及预定轨迹方程,确定所述多个比例节点各自的初始位置信息;以及
对所述多个比例节点的初始位置信息分别进行取整处理,得到所述多个比例节点的位置信息。
6.根据权利要求2所述的方法,其中,所述参考曲线为贝塞尔曲线,所述第二参考控制点包括所述参考曲线的起点和终点。
7.根据权利要求1所述的方法,还包括:
响应于未接收所述输出指令,更新所述滑块的当前轨迹点,并返回确定移动控制点的操作。
8.一种验证方法,包括:
响应于接收到验证请求,确定验证码图像,所述验证码图像包括参考曲线;
确定映射信息,所述映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;
输出所述验证码图像和所述映射信息;
获取与所述验证页面中展示曲线相关的待验证信息;以及
根据所述待验证信息和所述参考曲线,确定验证结果。
9.根据权利要求8所述的方法,其中,所述参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的;
所述确定映射信息包括:
根据所述第一参考控制点的位置信息和预定函数,确定所述控制点轨迹;以及
根据所述控制点轨迹的长度和所述滑块轨迹的长度,确定所述映射信息;
其中,所述控制点轨迹包括所述第一参考控制点,且所述预定函数表征的函数曲线与所述控制点轨迹一致。
10.根据权利要求9所述的方法,其中,所述待验证信息包括移动控制点的位置信息,所述移动控制点处于所述控制点轨迹中,且所述移动控制点与所述滑块的当前轨迹点满足映射关系;
所述根据所述待验证信息和所述参考曲线,确定验证结果包括:
根据所述移动控制点的位置信息和所述第二参考控制点的位置信息,确定所述展示曲线;以及
根据所述展示曲线和所述参考曲线,确定所述验证结果。
11.根据权利要求10所述的方法,其中,所述根据所述展示曲线和所述参考曲线,确定所述验证结果包括:
确定所述参考曲线中的多个第一轨迹点和所述展示曲线中的多个第二轨迹点,所述多个第一轨迹点与所述多个第二轨迹点一一对应;
将所述多个第一轨迹点和所述多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点;
针对每个轨迹点对,确定所述第一轨迹点与所述第二轨迹点之间的距离;以及
根据所述多个轨迹点对各自的距离,确定所述验证结果。
12.根据权利要求9所述的方法,其中,所述预定函数为单调函数。
13.一种验证装置,包括:
第一获取模块,用于获取验证码图像和映射信息;其中,所述验证码图像包括参考曲线,所述映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;
移动控制点确定模块,用于根据所述映射信息,从所述控制点轨迹中,确定与所述滑块的当前轨迹点满足映射关系的移动控制点;
展示曲线确定模块,用于根据所述移动控制点的位置信息,确定展示曲线;以及
第一输出模块,用于响应于接收到输出指令,输出与所述展示曲线相关的待验证信息,以便接收验证结果,所述验证结果是根据所述待验证信息和所述参考曲线确定的。
14.根据权利要求13所述的装置,其中,所述参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的,所述第一参考控制点处于控制点轨迹中;
所述展示曲线确定模块包括:
展示曲线确定子模块,用于根据所述移动控制点的位置信息和所述第二参考控制点的位置信息,确定所述展示曲线。
15.根据权利要求14所述的装置,其中,所述展示曲线确定子模块包括:
系数确定单元,用于确定多个比例系数;
位置确定单元,用于根据所述移动控制点的位置信息、所述第二参考控制点的位置信息、所述多个比例系数以及预定轨迹方程,确定多个比例节点各自的位置信息,其中,所述多个比例节点与多个所述比例系数一一对应;以及
曲线确定单元,用于根据所述多个比例节点各自的位置信息,确定所述展示曲线。
16.根据权利要求15所述的装置,其中,所述系数确定单元包括:
数量确定子单元,用于根据所述验证页面的分辨率,确定所述比例节点的数量;以及
系数确定子单元,用于根据所述比例节点的数量,确定所述多个比例系数。
17.根据权利要求15所述的装置,其中,所述位置确定单元包括:
位置确定子单元,用于根据所述移动控制点的位置信息、所述第二参考控制点的位置信息、所述多个比例系数以及预定轨迹方程,确定所述多个比例节点各自的初始位置信息;以及
取整子单元,用于对所述多个比例节点的初始位置信息分别进行取整处理,得到所述多个比例节点的位置信息。
18.根据权利要求14所述的装置,其中,所述参考曲线为贝塞尔曲线,所述第二参考控制点包括所述参考曲线的起点和终点。
19.根据权利要求13所述的装置,还包括:
更新模块,用于响应于未接收所述输出指令,更新所述滑块的当前轨迹点,并返回确定移动控制点的操作。
20.一种验证装置,包括:
验证码确定模块,用于响应于接收到验证请求,确定验证码图像,所述验证码图像包括参考曲线;
映射信息确定模块,用于确定映射信息,所述映射信息表征控制点轨迹中轨迹点与针对验证页面中滑块的滑块轨迹中轨迹点之间的映射关系;
第二输出模块,用于输出所述验证码图像和所述映射信息;
第二获取模块,用于获取与所述验证页面中展示曲线相关的待验证信息;以及
结果确定模块,用于根据所述待验证信息和所述参考曲线,确定验证结果。
21.根据权利要求20所述的装置,其中,所述参考曲线是基于第一参考控制点的位置信息和第二参考控制点的位置信息确定的;
所述映射信息确定模块包括:
轨迹确定子模块,用于根据所述第一参考控制点的位置信息和预定函数,确定所述控制点轨迹;以及
映射信息确定子模块,用于根据所述控制点轨迹的长度和所述滑块轨迹的长度,确定所述映射信息;
其中,所述控制点轨迹包括所述第一参考控制点,且所述预定函数表征的函数曲线与所述控制点轨迹一致。
22.根据权利要求21所述的装置,其中,所述待验证信息包括移动控制点的位置信息,所述移动控制点处于所述控制点轨迹中,且所述移动控制点与所述滑块的当前轨迹点满足映射关系;
所述结果确定模块包括:
曲线确定子模块,用于根据所述移动控制点的位置信息和所述第二参考控制点的位置信息,确定所述展示曲线;以及
结果确定子模块,用于根据所述展示曲线和所述参考曲线,确定所述验证结果。
23.根据权利要求22所述的装置,其中,所述结果确定子模块果包括:
轨迹点确定单元,用于确定所述参考曲线中的多个第一轨迹点和所述展示曲线中的多个第二轨迹点,所述多个第一轨迹点与所述多个第二轨迹点一一对应;
划分单元,用于将所述多个第一轨迹点和所述多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点;
距离确定单元,用于针对每个轨迹点对,确定所述第一轨迹点与所述第二轨迹点之间的距离;以及
结果确定单元,用于根据所述多个轨迹点对各自的距离,确定所述验证结果。
24.根据权利要求21所述的装置,其中,所述预定函数为单调函数。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至12中任一项所述的方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310988425.7A CN117040832A (zh) | 2023-08-07 | 2023-08-07 | 验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310988425.7A CN117040832A (zh) | 2023-08-07 | 2023-08-07 | 验证方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117040832A true CN117040832A (zh) | 2023-11-10 |
Family
ID=88622164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310988425.7A Pending CN117040832A (zh) | 2023-08-07 | 2023-08-07 | 验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117040832A (zh) |
-
2023
- 2023-08-07 CN CN202310988425.7A patent/CN117040832A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11961325B2 (en) | Image processing method and apparatus, computer-readable medium, and electronic device | |
US20240078646A1 (en) | Image processing method, image processing apparatus, and non-transitory storage medium | |
US11321847B2 (en) | Foreground-aware image inpainting | |
JP7114774B2 (ja) | 顔融合モデルのトレーニング方法、装置及び電子機器 | |
WO2018032947A1 (zh) | 三维模型验证码的实现方法及其装置 | |
KR101032446B1 (ko) | 영상의 정점 검출 장치 및 방법 | |
WO2019041424A1 (zh) | 验证码识别方法、装置、计算机设备及计算机存储介质 | |
CN111259878A (zh) | 一种检测文本的方法和设备 | |
CN112308051B (zh) | 文本框检测方法、装置、电子设备和计算机存储介质 | |
CN114677565B (zh) | 特征提取网络的训练方法和图像处理方法、装置 | |
US20210295527A1 (en) | Algorithmic approach to finding correspondence between graphical elements | |
WO2023019995A1 (zh) | 训练方法、译文展示方法、装置、电子设备以及存储介质 | |
CN115294268A (zh) | 一种物体的三维模型重建方法及电子设备 | |
US9141380B2 (en) | Method and system for visualization of large codebases | |
US10558900B2 (en) | Two-dimensional code processing method and apparatus | |
CN117422851A (zh) | 虚拟换衣方法及其装置、电子设备 | |
CN116883916A (zh) | 一种基于深度学习的会议异常行为检测方法及系统 | |
CN117040832A (zh) | 验证方法、装置、电子设备及存储介质 | |
AU2019200269B2 (en) | An interactive user interface and its corresponding engine for improving image completion quality | |
CN115375847B (zh) | 材质恢复方法、三维模型的生成方法和模型的训练方法 | |
CN111079059A (zh) | 页面检查方法、装置、设备及计算机可读存储介质 | |
CN110688704A (zh) | 家装设计方法、系统及电子设备 | |
CN113658195B (zh) | 图像分割方法、装置及电子设备 | |
JP2024507308A (ja) | 画像サンプル生成方法、テキスト認識方法、装置、電子機器、記憶媒体及びコンピュータプログラム | |
CN109189537A (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 |