本公开涉及计算机技术领域,尤其涉及一种验证方法、装置、设备及存储介质。
背景技术:
验证码是一种用来识别当前触发操作的是人类用户还是计算机程序的技术,它的学名是全自动区分计算机和人类的图灵测试(英文:completelyautomatedpublicturingtesttotellcomputersandhumansapart,简称:captcha),通常俗称为验证码。验证码的形式可以包括多种,例如手机短信验证码、问答验证码、图形验证码等。其中,图形验证码由于其容易识别、安全性相对较高的优势,得到了广泛的应用。
相关技术中,通常将拼图作为图形验证码,通过拼图操作是否正确来进行验证。具体而言,电子设备会在屏幕中显示缺失一块拼图的背景图像和一块随机摆放的拼图。用户需要对拼图触发操作,来带动拼图在屏幕中移动。当拼图移动到背景图像中的缺失位置时,判定操作正确,则验证通过。当拼图移动到背景图像的其他位置时,判定操作不正确,则验证不通过。
采用上述方法进行验证时,拼图的正确位置容易被程序利用算法自动计算出来,导致该方法容易被破解,因此该验证方法的安全性较差。
技术实现要素:
本公开提供一种验证方法、装置、设备及存储介质,以至少解决相关技术中容易被程序破解导致安全性差的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种验证方法,包括:
显示第一图形验证码和第一提示信息,所述第一图形验证码为扭曲图像,所述第一提示信息用于提示对所述第一图形验证码触发图像扭曲操作;
当检测到图像扭曲操作时,根据所述图像扭曲操作的操作信息,对所述第一图形验证码进行扭曲处理,得到第二图形验证码;
当所述第二图形验证码为正常图像时,验证通过。
可选地,所述图像扭曲操作包括滑动操作,所述根据所述图像扭曲操作的操作信息,对所述第一图形验证码进行扭曲处理,得到第二图形验证码,包括:
根据所述滑动操作的滑动距离,对所述第一图形验证码进行扭曲处理,得到第二图形验证码,所述第二图形验证码的扭曲程度和所述滑动距离相关。
可选地,所述滑动操作为对导轨上的滑块触发的操作,所述导轨位于所述第一图形验证码对应的区域中,所述滑动距离为所述滑块从所述导轨的端点开始滑过的距离;或者,
所述滑动操作为在所述第一图形验证码上触发的滑动操作。
可选地,所述根据所述滑动操作的滑动距离,对所述第一图形验证码进行扭曲处理,得到第二图形验证码,包括:
根据滑动距离与角度之间的映射关系,获取所述滑动距离对应的目标角度;
将所述第一图形验证码扭曲所述目标角度,得到第二图形验证码。
可选地,所述根据所述图像扭曲操作的操作信息,对所述第一图形验证码进行扭曲处理,得到第二图形验证码之后,所述方法还包括:
当所述第二图形验证码为正常图像时,显示第二提示信息,所述第二提示信息用于提示所述第二图形验证码为正常图像。
可选地,所述根据所述图像扭曲操作的操作信息,对所述第一图形验证码进行扭曲处理,得到第二图形验证码之后,所述方法还包括:
当所述第二图形验证码为扭曲图像时,验证不通过,显示第三提示信息,所述第三提示信息用于提示所述第二图形验证码为扭曲图像。
可选地,所述方法还包括:
显示刷新控件;
当检测到对所述刷新控件触发的操作时,对所述第一图形验证码包含的图像内容进行刷新。
根据本公开实施例的第二方面,提供一种验证装置,包括:
显示单元,被配置为执行显示第一图形验证码和第一提示信息,所述第一图形验证码为扭曲图像,所述第一提示信息用于提示对所述第一图形验证码触发图像扭曲操作;
扭曲处理单元,被配置为执行当检测到图像扭曲操作时,根据所述图像扭曲操作的操作信息,对所述第一图形验证码进行扭曲处理,得到第二图形验证码;
验证单元,被配置为执行当所述第二图形验证码为正常图像时,验证通过。
可选地,所述图像扭曲操作包括滑动操作,所述扭曲处理单元,被配置为执行根据所述滑动操作的滑动距离,对所述第一图形验证码进行扭曲处理,得到第二图形验证码,所述第二图形验证码的扭曲程度和所述滑动距离相关。
可选地,所述滑动操作为对导轨上的滑块触发的操作,所述导轨位于所述第一图形验证码对应的区域中,所述滑动距离为所述滑块从所述导轨的端点开始滑过的距离;或者,
所述滑动操作为在所述第一图形验证码上触发的滑动操作。
可选地,所述扭曲处理单元,包括:
获取子单元,被配置为执行根据滑动距离与角度之间的映射关系,获取所述滑动距离对应的目标角度;
扭曲子单元,被配置为执行将所述第一图形验证码扭曲所述目标角度,得到第二图形验证码。
可选地,所述显示单元,还被配置为执行当所述第二图形验证码为正常图像时,显示第二提示信息,所述第二提示信息用于提示所述第二图形验证码为正常图像。
可选地,所述显示单元,还被配置为执行当所述第二图形验证码为扭曲图像时,验证不通过,显示第三提示信息,所述第三提示信息用于提示所述第二图形验证码为扭曲图像。
可选地,所述显示单元,还被配置为执行显示刷新控件;
所述检测单元,还被配置为执行当检测到对所述刷新控件触发的操作时,对所述第一图形验证码包含的图像内容进行刷新。
根据本公开实施例的第三方面,提供一种电子设备,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行所述指令,以实现上述验证方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述验证方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括一条或多条指令,所述一条或多条指令由电子设备的处理器执行时,使得所述电子设备能够执行上述验证方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本实施例提供了一种通过扭曲图像来进行验证的方法,根据图像扭曲操作,对前台显示的图形验证码进行扭曲处理,根据扭曲处理后得到的图形验证码的角度是否正确,来判定是否验证通过。由于图像的视觉效果是一种高层的语义,对于人类来说,图像是歪曲还是正常是很容易观察理解的特征,但对于程序来说,图像是歪曲还是正常是很难识别出来的特征,因此,这种验证方式能非常有效地区分出对验证码触发操作的是真人还是机器程序。利用该方法,既能够保证真人用户容易通过验证,又能够保证程序难以破解出正确的图形验证码来恶意攻击,因此极大地提高了验证的安全性。此外,通过触发图像扭曲操作即可进行验证,相对于要求用户算数或者回答智力题的验证方式来说,操作十分便捷,节省了验证的耗时,因此提高了验证的效率,同时降低了用户的学习成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种验证系统的架构图;
图2是根据一示例性实施例示出的一种验证方法的流程图;
图3是根据一示例性实施例示出的一种验证方法的流程图;
图4是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图5是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图6是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图7是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图8是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图9是根据一示例性实施例示出的一种基于图形验证码验证的示意图;
图10是根据一示例性实施例示出的一种验证装置的框图;
图11是根据一示例性实施例示出的一种终端的框图;
图12是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
以下,对本公开实施例的硬件环境进行示例性说明。
图1是根据一示例性实施例示出的一种验证系统的架构图。该验证系统包括:终端101和验证平台110。终端101通过无线网络或有线网络与验证平台110相连。
终端101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器或mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端101安装和运行有支持验证的应用程序。该应用程序可以是客户端应用,也可以是浏览器应用。例如,该应用程序可以是直播应用、多媒体应用、短视频应用、金融应用、购物应用等。示例性的,终端101是用户使用的终端,终端101中运行的应用程序内登录有用户账号。
验证平台110可以是一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。验证平台110用于为支持验证功能的应用程序提供后台服务。可选地,在验证的过程中,验证平台110和终端101可以协同工作。比如说,验证平台110用于提供图形验证码,终端101用于显示图形验证码以及供用户对图形验证码触发图像扭曲操作。
可选地,验证平台110包括:服务器1101和数据库1102。服务器1101用于提供验证有关的后台服务,例如将图形验证码发送给终端101,接收终端101返回的验证结果。数据库1102可以用于存储大量的图形验证码等,当需要时,数据库1102可以将存储的图形验证码提供给服务器1101。
终端101可以泛指多个终端中的一个,或者多个终端组成的集合;服务器1101可以泛指多个服务器中的一个,或者多个服务器组成的集合;数据库1102可以泛指多个数据库中的一个,或者多个数据库组成的集合。应理解,如果终端101、服务器1101或者数据库1102是多台设备的集合,虽然图1未示出,此时上述验证系统还包括其他终端、其他服务器或其他数据库。本实施例对验证系统中每种设备的数量和设备类型不做限定。
以上介绍了本公开实施例的硬件环境,以下对本公开实施例的方法流程进行示例性说明。
图2是根据一示例性实施例示出的一种验证方法的流程图,该方法可以应用在电子设备中,包括以下步骤。
在步骤s21中,显示第一图形验证码和第一提示信息,第一图形验证码为扭曲图像,第一提示信息用于提示对第一图形验证码触发图像扭曲操作。
在步骤s22中,当检测到图像扭曲操作时,根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码。
在步骤s23中,当第二图形验证码为正常图像时,验证通过。
本实施例提供了一种通过扭曲图像来进行验证的方法,根据图像扭曲操作,对前台显示的图形验证码进行扭曲处理,根据扭曲处理后得到的图形验证码的角度是否正确,来判定是否验证通过。由于图像的视觉效果是一种高层的语义,对于人类来说,图像是歪曲还是正常是很容易观察理解的特征,但对于程序来说,图像是歪曲还是正常是很难识别出来的特征,因此,这种验证方式能非常有效地区分出对验证码触发操作的是真人还是机器程序。利用该方法,既能够保证真人用户容易通过验证,又能够保证程序难以破解出正确的图形验证码来恶意攻击,因此极大地提高了验证的安全性。此外,通过触发图像扭曲操作即可进行验证,相对于要求用户算数或者回答智力题的验证方式来说,操作十分便捷,节省了验证的耗时,因此提高了验证的效率,同时降低了用户的学习成本。
可选地,图像扭曲操作包括滑动操作,根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码,包括:
根据滑动操作的滑动距离,对第一图形验证码进行扭曲处理,得到第二图形验证码,第二图形验证码的扭曲程度和滑动距离相关。
可选地,滑动操作为对导轨上的滑块触发的操作,导轨位于第一图形验证码对应的区域中,滑动距离为滑块从导轨的端点开始滑过的距离;或者,
滑动操作为在第一图形验证码上触发的滑动操作。
可选地,根据滑动操作的滑动距离,对第一图形验证码进行扭曲处理,得到第二图形验证码:
根据滑动距离与角度之间的映射关系,获取滑动距离对应的目标角度;
将第一图形验证码扭曲目标角度,得到第二图形验证码。
可选地,根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码之后,方法还包括:
当第二图形验证码为正常图像时,显示第二提示信息,第二提示信息用于提示第二图形验证码为正常图像。
可选地,根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码之后,方法还包括:
当第二图形验证码为扭曲图像时,验证不通过,显示第三提示信息,第三提示信息用于提示第二图形验证码为扭曲图像。
可选地,方法还包括:
显示刷新控件;
当检测到对刷新控件触发的操作时,对第一图形验证码包含的图像内容进行刷新。
以上介绍了本公开实施例提供的一个方法实施例,以下通过另一个方法实施例对本公开实施例进行示例性说明。
图3是根据一示例性实施例示出的一种验证方法的流程图,该方法包括以下步骤。
在步骤s31中,电子设备获取第一图形验证码和第一提示信息。
第一图形验证码可以是根据用户的操作进行处理之前显示的图形验证码。例如,第一图形验证码可以是刚启动验证时显示的图形验证码。又如,第一图形验证码可以是失败重试后重新显示的图形验证码。第一图形验证码的形态可以是一个图像,图像的内容可以预先设定,例如可以是建筑、人物、卡通等。第一图形验证码的角度可以是预设角度。
其中,第一图形验证码为扭曲图像,后续可以通过用户的图像扭曲操作,能够将第一图形验证码恢复至正常图像。例如,参见图4,在用户未开始拖动滑块之前,原始的图形验证码可以是严重扭曲的图像。
获取第一图形验证码的具体过程可以包括多种。举例来说,电子设备可以是终端,终端可以向服务器发送验证码获取请求,服务器响应于验证码获取请求,从数据库读取第一图形验证码,将第一图形验证码发送至终端,终端可以接收到第一图形验证码。
获取第一图形验证码的场景可以包括多种。在一个示例性场景中,在电子设备运行目标应用的过程中,当接收到业务处理指令时,为了鉴别触发指令的是用户还是脚本程序,可以通过获取第一图形验证码,并执行后续基于第一图形验证码的验证流程,当验证通过时,才响应于业务处理指令,执行对应的业务,当验证通过时,则拒绝执行业务处理,从而保证安全性,避免不法者利用脚本程序恶意指令电子设备执行业务处理。
第一提示信息用于提示对第一图形验证码触发图像扭曲操作。用户可以通过查看第一提示信息,了解要执行图像扭曲操作来通过验证。第一提示信息可以是文字、符号、图像或者语音,当然也可以是其他数据形式。第一提示信息的显示位置可以包括多种实现方式。例如,电子设备可以在导轨中滑块之外的剩余区域中,显示第一提示信息,如此,用户查看导轨,即可了解如何通过操作滑块来通过验证。例如,参见图4,电子设备可以在导轨中,显示“向右滑动拖动恢复扭曲图像”。
在步骤s32中,电子设备显示第一图形验证码和第一提示信息。
示例性地,参见图4,电子设备可以显示如图4所示的第一图形验证码和第一提示信息。
在一些实施例中,电子设备还可以在第一图形验证码对应的区域中,显示导轨以及位于导轨上的滑块。其中,第一图形验证码对应的区域可以是第一图形验证码在界面中邻近的区域。例如,第一图形验证码对应的区域可以是第一图形验证码下方的区域。示例性地,参见图4,可以在第一图形验证码下方的区域中,显示导轨和滑块。
通过显示导轨和滑块,用户能够通过拖动滑块,改变滑块在导轨上的位置,使得滑块在导轨上滑动,而这种操作被配置为图像扭曲操作,能够扭曲第一图形验证码。如此,用户通过拖动滑块即可实现图像验证,操作十分便捷,并且,相对于算数、答题等验证方式来说,节省了用户的学习成本。
可选地,参见图4,电子设备还可以显示刷新控件。该刷新控件用于刷新第一图形验证码包含的图像的内容。当用户对刷新控件触发操作后,电子设备可以重新获取第一图形验证码,重新显示第一图形验证码,该重新显示的第一图形验证码与之前显示的第一图形验证码包含的图像内容不同。如此,如果当前显示的第一图形验证码进行恢复还原的操作难度较大,用户可以通过对刷新控件触发操作,更换另外一幅第一图形验证码进行验证,从而提高了操作成功率。
在步骤s33中,电子设备检测到图像扭曲操作。
图像扭曲操作是指用于用户触发的用于对第一图形验证码进行扭曲的操作。通过图像扭曲操作,能够改变第一图形验证码的扭曲程度。图像扭曲操作的具体实现方式可以包括多种。举例来说,图像扭曲操作可以包括滑动操作。以下,通过实现方式一至实现方式二,对检测用于扭曲图像的滑动操作的实现方式进行举例说明。
实现方式一、通过滑块来触发图像扭曲操作。
具体地,步骤s33可以包括:电子设备检测到对滑块触发的滑动操作。例如,参见图4、图5、图6、图7、图8或图9,如果用户拖动滑块在导轨上左右滑动,则电子设备会检测到图像扭曲操作。
实现方式二、通过在第一图形验证码上滑动来触发图像扭曲操作。
具体地,步骤s33可以包括:电子设备检测到从第一图形验证码中的第一位置至第二位置的滑动操作。其中,第一位置可以为第一图形验证码上的任意位置,第二位置可以为第一图形验证码上与第一位置不同的任意位置。第一位置和第二位置可以分别在第一图形验证码的两侧,例如,第一位置在第一图形验证码的左侧,第二位置在第一图形验证码的右侧。例如,用户可以从第一图形验证码的左侧滑动至右侧,来触发图像扭曲操作。
在步骤s34中,电子设备根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码。
第二图形验证码是指对第一图形验证码扭曲处理后得到的图像,第二图形验证码能够用于判定是否验证通过。第二图形验证码相对于第一图形验证码来说产生了形变,也即是,第二图形验证码的形状和第一图形验证码的形状不同。例如,第二图形验证码的扭曲角度和第一图形验证码的扭曲角度不同。示意性地,参见图5,图5是第二图形验证码的示意图,通过对比图4和图5可以看出,第一图形验证码经过了扭曲处理,从图4所示的图像演变为图5所示的图像。图5所示的是可触发验证通过的第二图形验证码的示意图,这种第二图形验证码为正常图像,图像的展示效果为端正的。参见图6、图7、图8或图9,图6、图7、图8或图9是另一种第二图形验证码的示意图,图6、图7、图8或图9所示的是可触发验证不通过的第二图形验证码的示意图,这种第二图形验证码为扭曲图像,图像的展示效果为扭曲的。
图像扭曲操作的操作信息可以包括操作距离、操作力度、操作次数中的一项或多项,可以确定图像扭曲操作的操作信息,根据操作信息对第一图形验证码进行扭曲处理。例如,如果图像扭曲操作是滑动操作,图像扭曲操作的操作信息可以是滑动距离,可以将滑动距离映射为对第一图形验证码扭曲的角度,例如,滑动的距离越大,则对第一图形验证码扭曲的角度可以越大。例如,参见图5、图6、图7、图8或图9,滑块的位置在导轨上越向右,则第一图形验证码被扭曲的角度越大。
通过步骤s34,用户能够通过执行图像扭曲操作来改变第一图形验证码的扭曲程度,如果图形扭曲操作正确,可以让第一图形验证码的扭曲量正确,从而让第一图形验证码矫正至正常的姿态。
在一些实施例中,如果图像扭曲操作是滑动操作,则扭曲处理的动作可以是:电子设备根据滑动操作的轨迹,对第一图形验证码进行扭曲处理,得到第二图形验证码。其中,利用滑动轨迹来扭曲处理具体可以包括多种实现方式,以下通过实现方式一至实现方式二进行举例说明。
实现方式一、电子设备根据滑块在导轨上滑过的距离,对第一图形验证码进行扭曲处理,得到第二图形验证码。
滑块可以从导轨的端点开始滑动,则滑块滑过的距离可以是滑轨的端点至滑块当前在滑轨上所处的位置之间的距离。例如,如果滑块当前位于滑轨的左端点,则滑块滑过的距离可以是0。如果滑块当前位于滑轨的右端点,则滑块滑过的距离可以是滑轨的长度。示意性地,参见图4和图5,用户能够通过拖动滑块到正确的位置,来施加正确的扭曲量,从而将第一图形验证码从扭曲的形态逐渐恢复,当滑到一定程度,图像的形态恢复正常,此时用户松开滑块停止拖动,即可得到验证通过。如此,通过拖动滑块来把扭曲的图形复原,即可实现图像验证的功能,从而保证了操作的便利性。
在一些实施例中,实现方式一可以包括以下步骤一至步骤二。
步骤一、电子设备根据滑动距离与角度之间的映射关系,获取滑动距离对应的目标角度。
目标角度是指滑块当前滑动的距离映射的角度。目标角度可以和距离正相关。例如,距离的最小值可以映射为目标角度的最小值。比如说,如果距离的最小值为0,目标角度的最小值为0度,则距离为0可以映射为0度。距离的最大值可以映射为目标角度的最大值。比如说,如果距离的最大值为导轨的长度,目标角度的最大值为180度,则距离为导轨的长度时可以映射为180度。参见图4,当未滑动滑块时,滑块位于滑轨的左端点,此时距离为0,该距离映射为0度,则后续会对第一图形验证码施加0度的扭曲角度。当将滑块滑动至滑轨的右端点,此时距离为滑轨的长度,该距离映射为180度,则后续会对第一图形验证码施加180度的扭曲角度。
其中,导轨上的每个位置和第一图形验证码待扭曲的角度大小可以是线性映射的关系。例如,参见图4、图5、图6、图7、图8或图9,可以将0到180度均匀地映射在导轨上的各个位置上。当然,导轨上的每个位置和第一图形验证码待扭曲的角度大小可以是非线性映射关系,本实施例对此不做限定。
在一些实施例中,电子设备可以通过skew函数来对图像施加扭曲量。skew函数可以是层叠样式表(cascadingstylesheets,css)中的transform属下的函数。skew函数可以包括多种,例如,skew函数可以是skewx(degree)函数;又如,skew函数可以是skewy(degree)函数;再如,skew函数可以是skew(xdegree,ydegree)。这几种具体的skew函数的区别之处为,skewx(degree)函数是在x轴方向上施加扭曲角度,skewy(degree)函数是在y轴方向上施加扭曲角度,skew(xdegree,ydegree)函数是在x轴方向和y轴方向同时施加扭曲角度。其中,degree是角度参数,表示待向第一图形验证码扭曲的角度。例如,skewx(30)表示在x轴方向上施加大小为30度的扭曲角度。
步骤二、电子设备将第一图形验证码扭曲目标角度,得到第二图形验证码。
示例性地,参见图4,在未拖动滑块之前,滑块位于最左端,此时第一图形验证码扭曲的角度是0度。当用户拖动滑块时,电子设备通过skewx()函数来对图像施加一定的扭曲量。其中,滑块位置越往右,则施加的扭曲角度越大。
实现方式二、如果滑动操作为在第一图形验证码本身上触发的滑动操作,则电子设备根据第一位置与第二位置之间的距离,对第一图形验证码进行扭曲处理,得到第二图形验证码。
在步骤s35中,当第二图形验证码为正常图像时,电子设备验证通过。
电子设备可以判断第二图形验证码扭曲的角度是否为预设角度,如果第二图形验证码的扭曲的角度为预设角度,电子设备可以确定第二图形验证码为正常图像,则验证通过。例如参见图5,如果将第二图形验证码如图5所示,可以确定第二图形验证码已经恢复至正常图像,则验证通过。
在一些实施例中,当第二图形验证码为正常图像时,电子设备可以显示第二提示信息,第二提示信息用于提示第二图形验证码为正常图像。第二提示信息可以是文字、符号、图像或者语音,当然也可以是其他数据形式。第二提示信息的显示位置可以包括多种实现方式。例如,电子设备可以在导轨中的滑块上,显示第二提示信息,如此,用户查看滑块,即可了解图像扭曲操作是否正确,当前是否能够验证通过。例如,参见图5,电子设备可以在滑块上,显示一个对勾,该对勾即为第二提示信息。
在步骤s36中,当第二图形验证码为扭曲图像时,电子设备验证不通过。
如果第二图形验证码扭曲的角度不为预设角度,电子设备可以确定第二图形验证码为扭曲图像,则验证不通过。在一些实施例中,当第二图形验证码为扭曲图像时,电子设备可以显示第三提示信息,第三提示信息用于提示第二图形验证码为扭曲图像。第三提示信息可以是文字、符号、图像或者语音,当然也可以是其他数据形式。第三提示信息的显示位置可以包括多种实现方式。例如,电子设备可以在导轨中滑块上,显示第三提示信息,如此,用户查看滑块,即可了解图像扭曲操作是否正确,当前是否能够验证通过。例如,参见图6、图7、图8或图9,电子设备可以在滑块上,显示一个叉号,该叉号即为第三提示信息。
本实施例提供了一种通过扭曲图像来进行验证的方法,根据图像扭曲操作,对前台显示的图形验证码进行扭曲处理,根据扭曲处理后得到的图形验证码的角度是否正确,来判定是否验证通过。由于图像的视觉效果是一种高层的语义,对于人类来说,图像是歪曲还是正常是很容易观察理解的特征,但对于程序来说,图像是歪曲还是正常是很难识别出来的特征,因此,这种验证方式能非常有效地区分出对验证码触发操作的是真人还是机器程序。利用该方法,既能够保证真人用户容易通过验证,又能够保证程序难以破解出正确的图形验证码来恶意攻击,因此极大地提高了验证的安全性。此外,通过触发图像扭曲操作即可进行验证,相对于要求用户算数或者回答智力题的验证方式来说,操作十分便捷,节省了验证的耗时,因此提高了验证的效率,同时降低了用户的学习成本。
以下,对上述方法实施例提高安全性的技术原理进行举例说明。
经过对拼图验证的方法进行研究分析,发现该方案可以通过计算机程序利用算法破解。具体来说,攻击者可以编写脚本程序,通过运行程序脚本来模拟人类,对滑块连续地模拟滑动,在滑动期间不断的实时生成快照,对包含滑块所处的各种位置的大量快照,进行分析,通过图形处理算法,判断出快照中的拼图是否和背景图像中的缺失位置发生了重合,从而确定当前的位置是否是正确的拼图位置。由此可见,这种破解方式容易被程序利用计算机和算法破解,导致安全性差。
而图像是否端正蕴藏在图像内部,是一种高层的语义。图像是否端正是很难通过算法计算衡量出的,但是却很容易通过视觉直观的感知出。因此,相对于能够通过简单的算法来判断出位置是否正确的拼图验证方法而言,本实施例提出的扭曲图像来验证的方法,能够极大地提高破解难度,因此保证不容易被计算机程序攻破,从而提高了安全性。
以下结合一些应用场景,对上述方法实施例的技术效果进行举例说明。
本公开实施例提供的验证方法可以应用在多种应用场景中,包括而不限于:通过浏览器登录网站,登录应用客户端、注册用户账号、支付消费时进行验证等等。当然,这几种场景仅是举例。应理解,指令计算机执行特定业务的场景均可以实施本方案,以达到提高安全性的目的。
在一个示例性应用场景中,当终端启动应用客户端后,如果接收到登录指令,可以在登录界面中,显示账号输入框、密码输入框和第一图形验证码。根据对账号输入框的输入操作,获取用户账号;根据对密码输入框的输入操作,获取密码;根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码;当第二图形验证码为正常图像、且用户账号和密码匹配时,验证通过,允许基于该用户账号登录应用客户端。当第二图形验证码为扭曲图像、或者用户账号和密码不匹配时,验证不通过,拒绝基于该用户账号登录应用客户端。
应用在上述场景中,可以通过本实施例提供的方法,识别出触发登录指令的是真实用户,还是恶意的脚本程序,从而提高了登录验证的安全性,避免非法用户恶意登录的额情况,为应用客户端实现了账号保护的功能。
在另一个示例性应用场景中,当终端启动应用客户端后,如果接收到业务处理指令,可以实施上述方法,在业务处理界面中,显示第一图形验证码。根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码;当第二图形验证码为正常图像,验证通过,执行业务处理指令对应的业务。当第二图形验证码为扭曲图像时,验证不通过,拒绝执行业务处理指令对应的业务。
比如,如果该应用客户端是火车购票客户端,如果接收到订票指令,可以实施上述方法,在订票界面中,显示账号输入框、密码输入框和第一图形验证码。根据对账号输入框的输入操作,获取用户账号;根据对密码输入框的输入操作,获取密码;根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码;当第二图形验证码为正常图像、且用户账号是在火车购票客户端已注册的用户账号、且密码和用户账号匹配时,验证通过,允许订票。当第二图形验证码为扭曲图像、或者用户账号尚未在火车购票客户端注册、或者密码和用户账号不匹配时,验证不通过,拒绝订票。
应用在上述场景中,可以通过本实施例提供的方法,有效防止黑客利用计算机程序通过不断尝试来暴力破解验证码,恶意指令服务器处理业务的情况。比如,可以防止非法的抢票软件模仿合法用户订票,从而恶意刷票、消耗票源的问题。
在再一些示例性应用场景中,在关注用户的业务中,比如关注主播、关注微博用户的业务中,可以通过上述方法实施例,来解决机器刷关注的问题。在另一个示例性应用场景中,在对资源进行评论的业务中,比如评论短视频、评论商品、评论微博的业务中,可以通过上述方法实施例,来解决机器刷评论的问题。在另一个示例性应用场景中,在以抽奖的方式获取资源的业务中,比如转发微博抽奖、转盘游戏抽奖、集卡抽奖等业务中,可以通过上述方法实施例,来解决恶意抽奖的问题。在另一个示例性应用场景中,在金融业务中,比如凭借验证码付款、转账、提现等业务等,可以通过上述方法实施例,来解决通过盗刷验证码来窃取用户账户的资产、引发金融风险的问题。这些应用场景的具体方法流程的技术原理与前述应用场景类似,其具体细节可以参见上述方法实施例,为描述简洁,此处不再一一枚举。
以上介绍了本公开实施例提供的方法实施例,以下对本公开实施例提供的虚拟装置进行示例性说明。
图10是根据一示例性实施例示出的一种验证装置的框图。参照图10,该装置包括显示单元1001、扭曲处理单元1002和验证单元1003。
显示单元1001,被配置为执行显示第一图形验证码和第一提示信息,第一图形验证码为扭曲图像,第一提示信息用于提示对第一图形验证码触发图像扭曲操作;
扭曲处理单元1002,被配置为执行当检测到图像扭曲操作时,根据图像扭曲操作的操作信息,对第一图形验证码进行扭曲处理,得到第二图形验证码;
验证单元1003,被配置为执行当第二图形验证码为正常图像时,验证通过。
本实施例提供了一种通过扭曲图像来进行验证的装置,根据图像扭曲操作,对前台显示的图形验证码进行扭曲处理,根据扭曲处理后得到的图形验证码的角度是否正确,来判定是否验证通过。由于图像的视觉效果是一种高层的语义,对于人类来说,图像是歪曲还是正常是很容易观察理解的特征,但对于程序来说,图像是歪曲还是正常是很难识别出来的特征,因此,这种验证方式能非常有效地区分出对验证码触发操作的是真人还是机器程序。利用该方法,既能够保证真人用户容易通过验证,又能够保证程序难以破解出正确的图形验证码来恶意攻击,因此极大地提高了验证的安全性。此外,通过触发图像扭曲操作即可进行验证,相对于要求用户算数或者回答智力题的验证方式来说,操作十分便捷,节省了验证的耗时,因此提高了验证的效率,同时降低了用户的学习成本。
可选地,图像扭曲操作包括滑动操作,扭曲处理单元1002,被配置为执行根据滑动操作的滑动距离,对第一图形验证码进行扭曲处理,得到第二图形验证码,第二图形验证码的扭曲程度和滑动距离相关。
可选地,滑动操作为对导轨上的滑块触发的操作,导轨位于第一图形验证码对应的区域中,滑动距离为滑块从导轨的端点开始滑过的距离;或者,
滑动操作为在第一图形验证码上触发的滑动操作。
可选地,扭曲处理单元1002,包括:
获取子单元,被配置为执行根据滑动距离与角度之间的映射关系,获取滑动距离对应的目标角度;
扭曲子单元,被配置为执行将第一图形验证码扭曲目标角度,得到第二图形验证码。
可选地,显示单元1001,还被配置为执行当第二图形验证码为正常图像时,显示第二提示信息,第二提示信息用于提示第二图形验证码为正常图像。
可选地,显示单元1001,还被配置为执行当第二图形验证码为扭曲图像时,验证不通过,显示第三提示信息,第三提示信息用于提示第二图形验证码为扭曲图像。
可选地,显示单元1001,还被配置为执行显示刷新控件;
检测单元,还被配置为执行当检测到对刷新控件触发的操作时,对第一图形验证码包含的图像内容进行刷新。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上介绍了本公开实施例提供的虚拟装置,以下对本公开实施例提供的硬件装置进行示例性说明。
上述方法实施例中的电子设备可以实现为终端,例如,图11示出了本公开一个示例性实施例提供的终端1100的结构框图。该终端1100可以是:智能手机、平板电脑、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1100包括有:一个或多个处理器1101和一个或多个存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本公开中方法实施例提供的验证方法。
在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。
外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1104用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏1105用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。
摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
定位组件1108用于定位终端1100的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1108可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。
加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3d动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1113可以设置在终端1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商logo时,指纹传感器1114可以与物理按键或厂商logo集成在一起。
光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
接近传感器1116,也称距离传感器,通常设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
上述方法实施例中的电子设备可以实现为服务器,例如,图12是本公开实施例提供的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)1201和一个或一个以上的存储器1202,其中,该存储器1202中存储有至少一条指令,该至少一条指令由该处理器1201加载并执行以实现上述各个方法实施例提供的验证方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述验证方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(read-onlymemory,简称:rom)、随机存取存储器(randomaccessmemory,简称:ram)、只读光盘(compactdiscread-onlymemory,简称:cd-rom)、磁带、软盘和光数据存储设备等。
本公开实施例还提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令由电子设备的处理器执行时,使得电子设备能够执行上述验证方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。