CN117032547A - 验证方法、装置、电子设备及存储介质 - Google Patents

验证方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117032547A
CN117032547A CN202310988437.XA CN202310988437A CN117032547A CN 117032547 A CN117032547 A CN 117032547A CN 202310988437 A CN202310988437 A CN 202310988437A CN 117032547 A CN117032547 A CN 117032547A
Authority
CN
China
Prior art keywords
sub
track
image
images
verification
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
Application number
CN202310988437.XA
Other languages
English (en)
Inventor
冯景辉
赵真一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310988437.XA priority Critical patent/CN117032547A/zh
Publication of CN117032547A publication Critical patent/CN117032547A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开提供了一种验证方法、装置、电子设备及存储介质,涉及图像处理技术领域,尤其涉及内容安全领域。具体实现方案为:响应于接收到验证请求,确定验证码图像,验证码图像包括参考轨迹;将验证码图像切割为P个子图像,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数;输出P个子图像;获取对象针对P个子图像进行操作产生的P个滑动轨迹;以及根据P个滑动轨迹和参考轨迹,确定目标验证结果。

Description

验证方法、装置、电子设备及存储介质
技术领域
本公开涉及图像处理技术领域,尤其涉及内容安全领域,更具体地,本公开提供了一种验证方法、装置、电子设备、存储介质以及计算机程序产品。
背景技术
近年来,互联网安全面临着越来越大的挑战。一种常见的保护手段是使用验证码来防止机器人和自动化攻击。采用静态验证码的目的主要是区分人类用户和机器用户,防止恶意软件、僵尸网络等对网络服务的滥用,静态验证码对于初步防御机器人和自动化攻击具有一定的效果。
然而,随着技术的发展,尤其是机器学习和图像识别技术的快速发展,静态验证码的安全性越来越受到挑战。智能化的攻击手段,如使用机器学习算法训练模型,已经可以识别和破解大部分的静态验证码,导致验证码安全性低。
发明内容
本公开提供了一种验证方法、装置、电子设备、存储介质以及计算机程序产品。
根据本公开的一方面,提供了一种验证方法,包括:响应于接收到验证请求,确定验证码图像,验证码图像包括参考轨迹;将验证码图像切割为P个子图像,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数;输出P个子图像;获取对象针对P个子图像进行操作产生的P个滑动轨迹;以及根据P个滑动轨迹和参考轨迹,确定目标验证结果。
根据本公开的另一方面,提供了一种验证方法,包括:展示P个子图像中的当前子图像,其中,P个子图像是对验证码图像进行切割得到的,验证码图像包括参考轨迹,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数;获取对象针对当前子图像进行操作产生的滑动轨迹;响应于检测到滑动轨迹满足预定更新条件,根据P个子图像的排列顺序,将P个子图像中当前子图像的在后子图像,更新为当前子图像,并返回展示当前子图像的操作,直至当前子图像为P个子图像中的最后一个子图像;以及输出对象针对P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果,目标验证结果是根据P个滑动轨迹和参考轨迹确定的。
根据本公开的另一方面,提供了一种验证装置,包括:图像确定模块、切割模块、第一输出模块、第一轨迹获取模块以及结果确定模块。图像确定模块用于响应于接收到验证请求,确定验证码图像,验证码图像包括参考轨迹。切割模块用于将验证码图像切割为P个子图像,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数。第一输出模块用于输出P个子图像。第一轨迹获取模块用于获取对象针对P个子图像进行操作产生的P个滑动轨迹。结果确定模块用于根据P个滑动轨迹和参考轨迹,确定目标验证结果。
根据本公开的另一个方面,提供了一种验证装置,包括:展示模块、第二轨迹获取模块、更新模块以及第二输出模块。展示模块用于展示P个子图像中的当前子图像,其中,P个子图像是对验证码图像进行切割得到的,验证码图像包括参考轨迹,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数。第二轨迹获取模块用于获取对象针对当前子图像进行操作产生的滑动轨迹。更新模块用于响应于检测到滑动轨迹满足预定更新条件,根据P个子图像的排列顺序,将P个子图像中当前子图像的在后子图像,更新为当前子图像,并返回展示当前子图像的操作,直至当前子图像为P个子图像中的最后一个子图像。第二输出模块用于输出对象针对P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果,目标验证结果是根据P个滑动轨迹和参考轨迹确定的。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的验证方法和装置的应用场景示意图;
图2是根据本公开实施例的验证方法的示意流程图;
图3是根据本公开另一实施例的验证方法的示意流程图;
图4是根据本公开另一实施例的验证方法的示意流程图;
图5是根据本公开实施例的验证方法的示意原理图;
图6是根据本公开实施例的生成验证码图像的方法的示意流程图;
图7是根据本公开另一实施例的生成验证码图像的示意流程图;
图8是根据本公开实施例的验证装置的示意结构框图;
图9是根据本公开实施例的验证装置的示意结构框图;以及
图10是用来实施本公开实施例的验证方法的电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在一些实施例中,可以使用验证码来进行信息的校验。然而,随着智能化的对抗技术发展迅速,现有的验证码系统越来越难以抵御打码平台的攻击。打码平台完整获取验证码图像,组成训练库,再进行模型训练,基本可以破解静态验证码。
常见的静态验证码和打码平台的攻击手段如下:
文本验证码:这是最常见的验证码类型,通常包含一组扭曲、旋转的字母和/或数字,有时还加入了噪点、线条等干扰元素。该种验证码要求用户根据图像中显示的信息输入相应的验证码。打码平台的攻击方式通常是使用OCR技术进行识别。进一步的,打码平台可以使用机器学习算法,通过训练大量的验证码样本来识别验证码。
图像识别验证码:这种验证码要求用户识别一组图片中的某一类图片,如“选择所有包含汽车的图片”。打码平台的攻击方式通常是使用图像识别和深度学习技术。
逻辑问题验证码:这种验证码包含一个需要用户思考才能回答的问题,如“今天是星期几?”或“1+3等于多少?”。打码平台的攻击方式可能是建立一种模式匹配系统,来识别和回答这类问题。
本公开实施例旨在提出一种验证方法,该方法涉及服务端和客户端,服务端可以生成验证码图像,验证码图像包括参考轨迹,服务端还对验证码图像进行分割处理,得到P个子图像,然后将P个子图像一次性或分P次发送至客户端,P是大于等于2的整数。客户端接收到子图像之后,在前端页面依次渲染子图像,用户可以控制鼠标沿子图像中的部分参考轨迹滑动,客户端采集用户针对每个子图像进行操作产生的滑动轨迹,这样得到P个滑动轨迹,客户端将P个滑动轨迹发送至服务端。服务端基于P个滑动轨迹和参考轨迹确定验证结果。相比于传统的静态验证码,本实施例中的动态验证码需要处理的信息更为复杂,且动态验证码图像中每个分段的子图像不具备完整信息,更难以被获取到完整的题目或形成流畅的验证码答案,从而提高验证的安全性。
本公开实施例适用于web网页安全,验证码,人机流量识别等场景。
以下将结合附图和具体实施例详细阐述本公开提供的技术方案。
图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是根据本公开实施例的验证方法的示意流程图。
如图2所示,该验证方法200可以包括操作S210~操作S250,该方法200可以由服务端执行。
在操作S210,响应于接收到验证请求,确定验证码图像,验证码图像包括参考轨迹。
例如,可以由客户端向服务端发送验证请求。服务端可以根据前景曲线和背景图像生成验证码图像,验证码图像中的曲线可以是三阶曲线,曲线可以为贝塞尔曲线、抛物线、双曲线等,本实施例对曲线不做限定,验证码图像中的曲线称为参考轨迹。
在操作S220,将验证码图像切割为P个子图像,每个子图像包括参考轨迹中的部分轨迹。
例如,可以按照等分的方式,将验证码图像从左至右切分为P个子图像,可以看出,切割之后验证码图像中的参考轨迹包括P个子参考轨迹,并且每个子图像中包括一个子参考轨迹,即每个子图像包含一部分验证信息,单个子图像缺少完整的验证信息,从而防止打码平台一次性获取全部验证信息。
在操作S230,输出P个子图像。
例如,服务端向客户端输出P个子图像。
在操作S240,获取对象针对P个子图像进行操作产生的P个滑动轨迹。
例如,客户端按照顺序依次展示P个子图像,然后对象可以在前端页面进行操作,例如控制鼠标沿子图像中的子参考轨迹滑动,从而产生P个滑动轨迹。客户端可以采集P个滑动轨迹,客户端可以将P个滑动轨迹一次性或者分P次发送至服务端。
在操作S250,根据P个滑动轨迹和参考轨迹,确定目标验证结果。
例如,将P个滑动轨迹按顺序组合为一个完整的轨迹,并确定该完整的轨迹与参考轨迹之间的相似度,若相似度较高则验证通过,否则不通过。
本公开实施例将验证码图像切割为多个子图像,在验证过程中,可以控制多个子图像依次展示给用户,而非一次性展示给用户。用户需要识别并提交当前子图像的滑动轨迹,然后才能看到下一个子图像。该种方式可以阻止打码平台一次性获取并识别完整的验证码图像,打码平台需要多次识别和提交。例如,若利用打码平台进行破解,需要将第一个子图像截图并发送至打码平台,然后打码平台确定针对第一个子图像的滑动方式。接下来,再将第二个子图像截图并发送至打码平台,然后打码平台确定针对第二个子图像的滑动方式,以此类推。可以看出,打码平台多次识别将显著增加识别的复杂性,此外,多次识别需要更多的时间,从而增加识别时间,使得打码平台难以在短时间内破解验证码,进而提高打码平台破解验证码的难度和成本。
此外,在实际应用中,可以对验证码图像中的背景图像和前景曲线进行融合等手段避免打码平台直接提取到曲线的边缘信息。在无法直接提取到边缘信息的情况下,参考轨迹的生成相对容易,而打码平台通过模型计算轨迹的难度较大,因此打码平台计算出的轨迹容易产生较大偏差,进而无法通过验证。进一步的,打码平台无法准确计算参考轨迹的情况下更可能选择人工打码,然而由于将验证码图像分割为多个子图像,每个子图像均需要单独传输,打码过程中无法降低每次向打码平台传输信息以及打码平台返回滑动方式所需的时长,导致人工针对相邻两个子图像进行打码的时间间隔通常在10秒以上,这样打码平台产生的针对多个子图像的滑动轨迹之间存在一些时间间隔,使多个滑动轨迹形成明显的卡顿,该种行为模式更容易被验证码系统判定为未通过验证,从而提高了验证码系统的防御能力。
图3是根据本公开另一实施例的验证方法的示意流程图。
如图3所示,该验证方法300可以包括操作S311~操作S312、操作S321以及操作S330~操作S350,该方法300可以由服务端执行。
在操作S311,响应于接收到验证请求,根据多个候选轨迹生成算法中的目标轨迹生成算法,生成参考轨迹。
例如,可以预先配置多个候选轨迹生成算法,例如将贝塞尔曲线的函数表达式、抛物线的函数表达式、椭圆的函数表达式分别作为候选轨迹生成算法,每个候选轨迹生成算法对应一种形状的候选轨迹。可以从多个候选轨迹生成算法中随机选择一种算法作为目标轨迹生成算法,然后生成参考轨迹。
在操作S312,根据参考轨迹和背景图像,确定验证码图像。
本公开将在下文对根据参考轨迹和背景图像确定验证码图像的过程进行详细说明,在此不再赘述。
在操作S321,根据与目标轨迹生成算法对应的切割模式,切割验证码图像,得到P个子图像。
例如,可以预先配置候选轨迹生成算法与切割模式之间的对应关系,然后采用与目标轨迹生成算法相对应的切割模式进行切割操作。
例如,候选轨迹生成算法用于生成相对平直且从左至右延伸的曲线,则与该候选轨迹生成算法相对应的切割模式可以为将验证码图像分割为多个从左至右依次排列的子图像。又例如,候选轨迹生成算法用于生成环形的曲线,则与该候选轨迹生成算法相对应的切割模式可以为将验证码图像分割为左上、左下、右上、右下四个子图像。本实施例采用与目标轨迹生成算法对应的切割模式来切割验证码图像,可以确保多个子图像中的局部参考轨迹具有较好的形状,避免相邻子图像中的参考轨迹出现间断。
在操作S330,输出P个子图像。
示例性的,可以根据业务需求确定P个子图像的发送方式。
例如,服务端可以将P个子图像一次性发送至客户端,然后客户端将P个子图像存储于本地缓存中,因此,服务端与客户端无需多次交互来进行P个子图像的传输,可以减少网络交互时长,提高用户使用感受。但是采用该种方式若打码平台通过一些技术手段从前端获取全部子图像,会降低验证的安全性,因此对前端的代码、密文等攻防要求较高。
又例如,服务端可以按照P个子图像的顺序,每次仅向客户端发送一个子图像,然后再接收到客户端请求之后,再向客户端发送下一个子图像。该种方案对前端的代码、密文等攻防要求较低,但是该种方式需要客户端与服务端多次交互来传输P个子图像,因此网络交互时长较短。
在一些实施例中,服务端还可以对P个子图像进行加密,例如服务端选择一个安全的加密算法(AES、RSA、DES),生成一个密钥,使用选择的加密算法和生成的密钥,对要发送的数据进行加密。加密后的数据是一串无规则的字符,服务端将加密后的数据发送给客户端。客户端接收到服务端发送的数据后,使用相应的密钥进行解密,密钥可以使用JS虚拟机进行保护,恢复原始的图像数据。采用加密和解密的技术方案,打码平台需要多次识别和提交验证码,导致加破解时长和成本的增加,进一步提高验证码的安全性。在实际加密和解密过程中,P个子图像的加密算法可以相同,P个子图像的密钥可以不同。
在操作S340,获取对象针对P个子图像进行操作产生的P个滑动轨迹。本操作可以参考操作S240,在此不再赘述。
在操作S350,根据P个滑动轨迹和参考轨迹,确定验证结果。
在一种示例中,可以根据参考轨迹和P个滑动轨迹的位置,来确定第一验证结果。
例如,可以确定参考轨迹中的多个第一轨迹点和P个滑动轨迹的多个第二轨迹点,多个第一轨迹点与多个第二轨迹点一一对应。将多个第一轨迹点和多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点。接下来,针对每个轨迹点对,确定第一轨迹点与第二轨迹点之间的距离。并根据多个轨迹点对各自的距离,确定第一验证结果。
例如,P个滑动轨迹可以组成一条总滑动轨迹,对于该总滑动轨迹和参考轨迹,每条轨迹包括一系列的点,每个点对应有位置信息。可以沿x轴方向,每隔预定间隔从参考轨迹和总滑动轨迹中选取轨迹点。接下来,可以按照轨迹点的排列顺序,将相同次序的第一轨迹点和第二轨迹点构成一个轨迹点对。计算同一个轨迹点对中的第一轨迹点和第二轨迹点之间的欧几里得距离,接下来计算多个轨迹点对的距离之和,得到总距离。若总距离小于等于距离阈值,则表示第一验证结果是通过验证,否则表示第一验证结果是未通过验证。
本实施例根据多个相对应的轨迹点的距离来确定总距离,并根据总距离确定第一验证结果,可以提高第一验证结果的准确性。
在另一种示例中,可以根据P个滑动轨迹的时间信息,来确定第二验证结果。
例如,根据多个第二轨迹点的顺序,以及与每个第二轨迹点对应的时间信息,确定第二验证结果。例如,可以预先训练判断模型,训练样本为轨迹,轨迹中包括多个轨迹点,每个轨迹点对应有时间信息,样本标签表征该轨迹是否合格。在应用中,可以将P个滑动轨迹构成的总滑动轨迹输入经训练的判断模型,总滑动轨迹包括多个第二轨迹点,并且每个第二轨迹点对应有时间信息,该时间信息表征对象在前端页面滑动至该轨迹点的时间。判断模型输出第二验证结果。
本实施例中,经训练的判断模型可以基于生物行为确定第二验证结果,该判断模型可以将时间长度较差、特定位置轨迹点之间的时间间隔较长的不符合生物行为的情况判定为未通过校验,从而提高验证的准确性。
在一些实施例中,可以将上述第一验证结果确定为验证结果。还可以根据第一验证结果和第二验证结果确定验证结果,例如在第一验证结果和第二验证结果均为通过的情况下,确定验证结果为通过,否则确定验证结果为未通过。
在得到验证结果之后,服务端可以将该验证结果发送至客户端。如验证结果为通过,用户就可以进一步使用网络服务。若验证结果为未通过,可以提示用户再次输出验证信息。
图4是根据本公开另一实施例的验证方法的示意流程图。
如图4所示,该验证方法400可以包括操作S410~操作S460,该方法400可以由客户端执行。
在操作S410,获取P个子图像中的当前子图像。
例如,客户端可以向服务端发送针对当前子图像的获取请求,从而从服务端获取当前子图像。
又例如,客户端可以向服务端发送请求,并一次性从服务端获取P个子图像,然后将P个子图像存储在本地存储区,本地存储区可以是本地缓存。接下来,客户端可以从本地存储区获取当前子图像。
可以理解的是,若服务端对P个子图像进行了加密,则客户端需要对子图像进行解密,解密后的数据为当前子图像。
在操作S420,展示P个子图像中的当前子图像。
例如,客户端在前端页面渲染当前子图像。
在操作S430,获取对象针对当前子图像进行操作产生的滑动轨迹。
例如,对象可以控制鼠标沿当前子图像移动,客户端可以采集对象操作产生的滑动轨迹,滑动轨迹包括多个点,每个点对应有位置信息和时间信息。
在操作S440,判断滑动轨迹是否满足预定更新条件,若是,则进入操作S450,否则可以返回S430,即重新获取最新的滑动轨迹,并判断最新的滑动轨迹是否满足预定的更新条件。
例如,预定更新条件包括:在展示当前子图像的时长达到预定展示时长,预定展示时长可以是2秒。
例如,预定更新条件包括:对象针对当前子图像进行操作产生的滑动轨迹的轨迹终点处于当前子图像中的预定区域。预定区域例如靠近当前子图像中靠近在后子图像的边界区域,轨迹终点处于预定区域表征对象即将完成针对当前子图像的操作。本实施例通过对象操作产生的轨迹终点的位置来确定是否展示下一个子图像,因此可以根据用户手动操作的速度动态调整子图像的显示速度,避免展示相邻两个子图像的时间间隔过短或过长。
在操作S450,根据P个子图像的排列顺序,将P个子图像中当前子图像的在后子图像,更新为当前子图像。接下来,可以返回操作S410,若当前子图像为P个子图像中的最后一个子图像,则可以进入操作S460。
可以看出,当前子图像为P个子图像中的最后一个子图像表示已获取到对象针对全部子图像的滑动轨迹。
在操作S460,输出对象针对P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果。
例如,客户端向服务端输出P个子图像,服务端基于P个子图像和参考轨迹确定目标验证结果,然后服务端将目标验证结果返回至客户端。
图5是根据本公开实施例的验证方法的示意原理图。
如图5所示,本实施例中,验证方法涉及图像生成服务501、源站服务502、边缘计算503、验证服务505、集成于客户端的验证码SDK 506。
可以使用图像生成服务501生成验证码图像,这个过程可以包括多个操作,例如生成背景图像和参考轨迹,然后将背景图像和参考轨迹融合为验证码图像。图像生成服务501可以部署在中心节点,也可以部署于中心节点之外的其他服务器。
源站服务502用于处理与客户请求无关的操作,其余操作由边缘计算503处理。例如边缘计算503可以从源站服务502拉取验证码图像,然后进行切割、加密、子图像的下发等操作。
验证码SDK 506加载于客户端,用于调起验证码,通过客户端代码实现加载、解密、弹出子图像、采集用户输入的滑动轨迹等过程。
验证服务505部署于服务端,用于从数据库504拉取配置信息,配置信息例如包括用户ID、验证码ID、参考轨迹、验证策略等信息。
在验证过程中,客户端从服务端获取由切割后的当前子图像并进行展示,用户观察当前子图像并输入相应的滑动轨迹,当滑动轨迹的轨迹终点处于当前子图像中的预定区域,客户端将滑动轨迹发送至服务端,并请求下一个子图像,或者客户端从本地缓存获取下一个子图像。
用户不断输入针对当前子图像的滑动轨迹,并获取下一个子图像,直到用户获取并输入P个滑动轨迹。用户可以在前端页面点击提交选项,客户端确定用户已经完成输入,并向服务端发送请求。服务端可以对多个子图像的滑动轨迹和参考轨迹进行判断,来确定验证结果。
在一些实施例中,可以将验证码图像部署分布式服务节点(例如,云服务器、CDN边缘节点等)上,可以降低网络交互的时长,降低用户的等待时间,从而提高用户体验。分布式服务节点的引入为验证码的对抗提供了新的可能性。使用类似于CDN边缘节点的分布式服务节点提供计算和存储服务,可以更高效地处理和响应数据。在验证码的对抗中,能够实时推送和处理多段验证码图像,使得验证码更加难以被破解。而且,由于分布式服务节点的低延迟特性,使得验证码图像的拉取过程更为流畅,从而提高了用户体验。
以上对基于验证码图像进行验证的过程进行了说明,可以理解的是,在实际验证过程中,可以由服务端预先生成验证码图像,以下结合图6和图7,对验证码图像的生成过程进行说明。
图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以及结果确定模块850。
图像确定模块810用于响应于接收到验证请求,确定验证码图像,验证码图像包括参考轨迹。
切割模块820用于将验证码图像切割为P个子图像,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数。
第一输出模块830用于输出P个子图像。
第一轨迹获取模块840用于获取对象针对P个子图像进行操作产生的P个滑动轨迹。
结果确定模块850用于根据P个滑动轨迹和参考轨迹,确定目标验证结果。
根据本公开另一实施例,图像确定模块包括:生成子模块和图像确定子模块。生成子模块用于根据多个候选轨迹生成算法中的目标轨迹生成算法,生成参考轨迹;图像确定子模块用于根据参考轨迹和背景图像,确定验证码图像;其中,每个候选轨迹生成算法对应一种形状的候选轨迹。
根据本公开另一实施例,切割模块包括:切割子模块,用于根据与目标轨迹生成算法对应的切割模式,切割验证码图像,得到P个子图像。
根据本公开另一实施例,结果确定模块包括:点确定子模块、划分子模块、距离确定子模块、第一结果确定子模块以及目标结果确定子模块。点确定子模块用于确定参考轨迹中的多个第一轨迹点和P个滑动轨迹的多个第二轨迹点,多个第一轨迹点与多个第二轨迹点一一对应;划分子模块用于将多个第一轨迹点和多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点;距离确定子模块用于针对每个轨迹点对,确定第一轨迹点与第二轨迹点之间的距离,作为每个轨迹点对的距离信息;第一结果确定子模块用于根据多个轨迹点对各自的距离信息,确定第一验证结果;目标结果确定子模块用于根据第一验证结果,确定目标验证结果。
根据本公开另一实施例,目标结果确定子模块包括:第一确定单元和第二确定单元。第一确定单元用于根据多个第二轨迹点的顺序,以及与每个第二轨迹点对应的时间信息,确定第二验证结果;第二确定单元用于根据第一验证结果和第二验证结果,确定目标验证结果。
图9是根据本公开实施例的验证装置的示意结构框图。
如图9所示,该验证装置900可以包括展示模块910、第二轨迹获取模块920、更新模块930以及第二输出模块940。
展示模块910用于展示P个子图像中的当前子图像,其中,P个子图像是对验证码图像进行切割得到的,验证码图像包括参考轨迹,每个子图像包括参考轨迹中的部分轨迹,P是大于等于2的整数。
第二轨迹获取模块920用于获取对象针对当前子图像进行操作产生的滑动轨迹。
更新模块930用于响应于检测到滑动轨迹满足预定更新条件,根据P个子图像的排列顺序,将P个子图像中当前子图像的在后子图像,更新为当前子图像,并返回展示当前子图像的操作,直至当前子图像为P个子图像中的最后一个子图像。
第二输出模块940用于输出对象针对P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果,目标验证结果是根据P个滑动轨迹和参考轨迹确定的。
根据本公开另一实施例,预定更新条件包括:对象针对当前子图像进行操作产生的滑动轨迹的轨迹终点处于当前子图像中的预定区域。
根据本公开另一实施例,P个子图像中的当前子图像是通过以下之一获取的:第一获取模块,用于向服务端发送针对当前子图像的获取请求,以从服务端获取当前子图像;第二获取模块,用于从本地存储区获取当前子图像,其中,本地存储区存储了从服务端获取的P个子图像。
根据本公开的实施例,本公开还提供了一种电子设备,包括至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述验证方法。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述验证方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述验证方法。
图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而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的验证方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行验证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (19)

1.一种验证方法,包括:
响应于接收到验证请求,确定验证码图像,所述验证码图像包括参考轨迹;
将所述验证码图像切割为P个子图像,每个子图像包括所述参考轨迹中的部分轨迹,P是大于等于2的整数;
输出所述P个子图像;
获取对象针对所述P个子图像进行操作产生的P个滑动轨迹;以及
根据所述P个滑动轨迹和所述参考轨迹,确定目标验证结果。
2.根据权利要求1所述的方法,其中,确定验证码图像包括:
根据多个候选轨迹生成算法中的目标轨迹生成算法,生成所述参考轨迹;以及
根据所述参考轨迹和背景图像,确定所述验证码图像;
其中,每个候选轨迹生成算法对应一种形状的候选轨迹。
3.根据权利要求2所述的方法,其中,将所述验证码图像切割为P个子图像包括:
根据与所述目标轨迹生成算法对应的切割模式,切割所述验证码图像,得到所述P个子图像。
4.根据权利要求1至3中任意一项所述的方法,其中,所述根据所述P个滑动轨迹和所述参考轨迹,确定目标验证结果包括:
确定所述参考轨迹中的多个第一轨迹点和所述P个滑动轨迹的多个第二轨迹点,所述多个第一轨迹点与所述多个第二轨迹点一一对应;
将所述多个第一轨迹点和所述多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点;
针对每个轨迹点对,确定所述第一轨迹点与所述第二轨迹点之间的距离,作为所述每个轨迹点对的距离信息;
根据所述多个轨迹点对各自的距离信息,确定第一验证结果;以及
根据所述第一验证结果,确定所述目标验证结果。
5.根据权利要求4所述的方法,其中,所述根据所述第一验证结果,确定所述目标验证结果包括:
根据所述多个第二轨迹点的顺序,以及与每个第二轨迹点对应的时间信息,确定第二验证结果;以及
根据所述第一验证结果和所述第二验证结果,确定所述目标验证结果。
6.一种验证方法,包括:
展示P个子图像中的当前子图像,其中,所述P个子图像是对验证码图像进行切割得到的,所述验证码图像包括参考轨迹,每个子图像包括所述参考轨迹中的部分轨迹,P是大于等于2的整数;
获取对象针对当前子图像进行操作产生的滑动轨迹;和
响应于检测到所述滑动轨迹满足预定更新条件,根据所述P个子图像的排列顺序,将所述P个子图像中当前子图像的在后子图像,更新为当前子图像,并返回展示当前子图像的操作,直至当前子图像为所述P个子图像中的最后一个子图像;以及
输出所述对象针对所述P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果,所述目标验证结果是根据所述P个滑动轨迹和所述参考轨迹确定的。
7.根据权利要求6所述的方法,其中,所述预定更新条件包括:所述对象针对当前子图像进行操作产生的滑动轨迹的轨迹终点处于当前子图像中的预定区域。
8.根据权利要求6至7中任意一项所述的方法,其中,所述P个子图像中的当前子图像是通过以下操作之一获取的:
向服务端发送针对当前子图像的获取请求,以从所述服务端获取当前子图像;
从本地存储区获取当前子图像,其中,所述本地存储区存储了从服务端获取的所述P个子图像。
9.一种验证装置,包括:
图像确定模块,用于响应于接收到验证请求,确定验证码图像,所述验证码图像包括参考轨迹;
切割模块,用于将所述验证码图像切割为P个子图像,每个子图像包括所述参考轨迹中的部分轨迹,P是大于等于2的整数;
第一输出模块,用于输出所述P个子图像;
第一轨迹获取模块,用于获取对象针对所述P个子图像进行操作产生的P个滑动轨迹;以及
结果确定模块,用于根据所述P个滑动轨迹和所述参考轨迹,确定目标验证结果。
10.根据权利要求9所述的装置,其中,所述图像确定模块包括:
生成子模块,用于根据多个候选轨迹生成算法中的目标轨迹生成算法,生成所述参考轨迹;以及
图像确定子模块,用于根据所述参考轨迹和背景图像,确定所述验证码图像;
其中,每个所述候选轨迹生成算法对应一种形状的候选轨迹。
11.根据权利要求10所述的装置,其中,所述切割模块包括:
切割子模块,用于根据与所述目标轨迹生成算法对应的切割模式,切割所述验证码图像,得到所述P个子图像。
12.根据权利要求9至11中任意一项所述的装置,其中,所述结果确定模块包括:
点确定子模块,用于确定所述参考轨迹中的多个第一轨迹点和所述P个滑动轨迹的多个第二轨迹点,所述多个第一轨迹点与所述多个第二轨迹点一一对应;
划分子模块,用于将所述多个第一轨迹点和所述多个第二轨迹点划分为多个轨迹点对,每个轨迹点对包括相对应的第一轨迹点和第二轨迹点;
距离确定子模块,用于针对每个轨迹点对,确定所述第一轨迹点与所述第二轨迹点之间的距离,作为所述每个轨迹点对的距离信息;
第一结果确定子模块,用于根据所述多个轨迹点对各自的距离信息,确定第一验证结果;以及
目标结果确定子模块,用于根据所述第一验证结果,确定所述目标验证结果。
13.根据权利要求12所述的装置,其中,所述目标结果确定子模块包括:
第一确定单元,用于根据所述多个第二轨迹点的顺序,以及与每个第二轨迹点对应的时间信息,确定第二验证结果;以及
第二确定单元,用于根据所述第一验证结果和所述第二验证结果,确定所述目标验证结果。
14.一种验证装置,包括:
展示模块,用于展示P个子图像中的当前子图像,其中,所述P个子图像是对验证码图像进行切割得到的,所述验证码图像包括参考轨迹,每个子图像包括所述参考轨迹中的部分轨迹,P是大于等于2的整数;
第二轨迹获取模块,用于获取对象针对当前子图像进行操作产生的滑动轨迹;和
更新模块,用于响应于检测到所述滑动轨迹满足预定更新条件,根据所述P个子图像的排列顺序,将所述P个子图像中当前子图像的在后子图像,更新为当前子图像,并返回展示当前子图像的操作,直至当前子图像为所述P个子图像中的最后一个子图像;以及
第二输出模块,用于输出所述对象针对所述P个子图像进行操作产生的P个滑动轨迹,以便接收目标验证结果,所述目标验证结果是根据所述P个滑动轨迹和所述参考轨迹确定的。
15.根据权利要求14所述的装置,其中,所述预定更新条件包括:所述对象针对当前子图像进行操作产生的滑动轨迹的轨迹终点处于当前子图像中的预定区域。
16.根据权利要求14至15中任意一项所述的装置,其中,所述P个子图像中的当前子图像是通过以下之一获取的:
第一获取模块,用于向服务端发送针对当前子图像的获取请求,以从所述服务端获取当前子图像;
第二获取模块,用于从本地存储区获取当前子图像,其中,所述本地存储区存储了从服务端获取的所述P个子图像。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至8中任一项所述的方法。
CN202310988437.XA 2023-08-07 2023-08-07 验证方法、装置、电子设备及存储介质 Pending CN117032547A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310988437.XA CN117032547A (zh) 2023-08-07 2023-08-07 验证方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310988437.XA CN117032547A (zh) 2023-08-07 2023-08-07 验证方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117032547A true CN117032547A (zh) 2023-11-10

Family

ID=88639658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310988437.XA Pending CN117032547A (zh) 2023-08-07 2023-08-07 验证方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117032547A (zh)

Similar Documents

Publication Publication Date Title
US20180253542A1 (en) Variation Analysis-Based Public Turing Test to Tell Computers and Humans Apart
US11347835B2 (en) Verification method and device
CN109523611B (zh) 验证码图片生成方法和装置
EP2410450A1 (en) Method for providing a challenge based on a content
US20110197268A1 (en) Captchas that include overlapped characters, projections on virtual 3d surfaces, and/or virtual 3d objects
EP2892003A1 (en) Method and apparatus for input verification
JP7206325B2 (ja) ピクチャ検証方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム
US20170011212A1 (en) Access control for a resource
EP3425847A1 (en) Captcha-based authentication processing method and device
JP2023543015A (ja) ビデオ検出方法、装置、電子機器及び記憶媒体
Goswami et al. FR-CAPTCHA: CAPTCHA based on recognizing human faces
CN114565513A (zh) 对抗图像的生成方法、装置、电子设备和存储介质
CN116883916A (zh) 一种基于深度学习的会议异常行为检测方法及系统
CN111680284A (zh) 滑块验证方法、装置及可读存储介质
CN117032547A (zh) 验证方法、装置、电子设备及存储介质
CN114882557A (zh) 一种人脸识别方法和装置
JP2024507308A (ja) 画像サンプル生成方法、テキスト認識方法、装置、電子機器、記憶媒体及びコンピュータプログラム
CN113518061B (zh) 人脸识别中的数据传输方法、设备、装置、系统及介质
WO2022087432A1 (en) Multi-factor authentication using symbols
CN117009947A (zh) 生成验证码图像的方法、装置、电子设备及存储介质
Jin et al. Ar captcha: Recognizing robot by augmented reality
CN111178352A (zh) 一种验证码字符识别的方法和装置
CN117040832A (zh) 验证方法、装置、电子设备及存储介质
CN111460422B (zh) 生成验证码的方法和装置
US20230015096A1 (en) Picture processing method and apparatus, electronic device and storage medium

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